文章目录
- QLineEdit 介绍
- 常用方法
- QLineEdit.EchoMode 取值
- 光标相关方法
- 文本选择方法
- 输入格式化字符(Input Mask)
- 常用信号
- QLineEdit 实例
QLineEdit 介绍

QLineEdit
是 PySide6(Qt for Python)中用于单行文本输入的控件。它支持文本编辑、光标控制、文本选择、输入掩码、校验器等多种功能,广泛应用于表单、搜索框等场景。
常用方法
方法名 | 说明 |
---|
setText(str) | 设置文本内容 |
text() | 获取当前文本 |
clear() | 清空文本 |
setReadOnly(bool) | 设置是否只读 |
setMaxLength(int) | 设置最大输入长度 |
setPlaceholderText(str) | 设置占位符文本 |
setEchoMode(QLineEdit.EchoMode) | 设置回显模式 |
setValidator(QValidator) | 设置输入校验器 |
setInputMask(str) | 设置输入掩码 |
undo() | 撤销 |
redo() | 重做 |
copy() | 复制 |
cut() | 剪切 |
paste() | 粘贴 |
QLineEdit.EchoMode 取值
枚举值 | 说明 |
---|
QLineEdit.Normal | 正常显示 |
QLineEdit.NoEcho | 不显示 |
QLineEdit.Password | 密码模式(显示为*) |
QLineEdit.PasswordEchoOnEdit | 编辑时显示密码,其他时隐藏 |
光标相关方法
方法名 | 说明 |
---|
cursorPosition() | 获取光标位置 |
setCursorPosition(int) | 设置光标位置 |
cursorBackward(bool, int) | 光标向后移动 |
cursorForward(bool, int) | 光标向前移动 |
home(bool) | 光标移到行首 |
end(bool) | 光标移到行尾 |
文本选择方法
方法名 | 说明 |
---|
hasSelectedText() | 是否有选中文本 |
selectedText() | 获取选中的文本 |
selectionStart() | 获取选中文本的起始位置 |
setSelection(start, length) | 选中指定范围文本 |
selectAll() | 全选 |
deselect() | 取消选择 |
输入格式化字符(Input Mask)
字符 | 说明 |
---|
A | 必须输入 ASCII 字母或数字 |
a | 可选输入 ASCII 字母或数字 |
N | 必须输入字母或数字 |
n | 可选输入字母或数字 |
9 | 必须输入数字(0-9) |
0 | 可选输入数字(0-9) |
# | 必须或可选输入数字、加减号 |
X | 必须输入任意字符 |
x | 可选输入任意字符 |
常用信号
信号名 | 说明 |
---|
textChanged(str) | 文本内容发生变化时发出 |
textEdited(str) | 用户编辑文本时发出 |
editingFinished() | 编辑完成(如回车或失焦)时发出 |
returnPressed() | 按下回车键时发出 |
selectionChanged() | 选中文本发生变化时发出 |
cursorPositionChanged(int, int) | 光标位置变化时发出 |
QLineEdit 实例
下面是一个简单的示例,用户在第一个 QLineEdit
输入城市名,点击按钮后,查询该城市天气(此处用模拟数据),并将结果显示到第二个 QLineEdit
上:
from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,QLineEdit, QPushButton, QLabel
)
def get_weather(city):fake_weather = {"北京": "晴 25℃","上海": "多云 22℃","广州": "小雨 28℃"}return fake_weather.get(city, "未找到该城市天气信息")app = QApplication([])window = QWidget()
window.setWindowTitle("城市天气查询")
layout = QVBoxLayout(window)input_layout = QHBoxLayout()
city_edit = QLineEdit()
city_edit.setPlaceholderText("请输入城市名")
query_btn = QPushButton("查询天气")
input_layout.addWidget(city_edit)
input_layout.addWidget(query_btn)result_edit = QLineEdit()
result_edit.setReadOnly(True)
result_edit.setPlaceholderText("天气信息将在此显示")layout.addLayout(input_layout)
layout.addWidget(result_edit)def on_query():city = city_edit.text().strip()weather = get_weather(city)result_edit.setText(weather)query_btn.clicked.connect(on_query)window.show()
app.exec()
运行效果如下:
