文章目录
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 ( )
运行效果如下: