利用QT设计师学习PyQt5控件
在Qt中,QLineEdit是文本编辑框控件,是比较基础且常用的控件的之一
QLineEdit
类属性
inputMask
设置掩码text
设置文本maxLength
文本框输入的最大字符数frame
设置边框echoMode
设置文本框显示格式
Normal
正常显示所输入的字符,此为默认选项NoEcho
不显示任何输入的字符,常用于密码类型的输入,且长度保密Password
显示与平台相关的密码掩饰字符,而不是实际输入的字符PasswordEchoOnEdit
在编辑时显示字符,负责显示密码类型的输入
cursorPosition
光标位置alignment
文本对齐方式
AlignLeft
左对齐AlignRight
右对齐AlignCenter
水平居中对齐AlignJustify
水平方向调整间距两端对齐AlignTop
垂直上对齐AlignBottom
垂直方下对齐AlignVCenter
垂直方向居中对齐
dragEnabled
设置文本框是否接受拖动readOnly
设置文本为只读placeholderText
设置文本框提示文字cursorMoveStyle
光标移动风格
LogicalMoveStyle
逻辑风格VisualMoveStyle
视觉风格
clearButtonEnabled
快速删除按钮
重点介绍下inputMask
设置掩码:
下表列出了输入掩码的占位符和字面字符,并说明其如何控制数据输入
A
:ASCII字母字符是必须输入的(A-Z,a-z)a
:ASCII字母字符是允许输入的,但不是必须输入的N
:ASCII字母字符是必须输入的(A-Z,a-z,0-9n
:ASCII字母字符是允许输入的,但不是必须输入的X
:任何字符都是必须输入x
:任何字符都是允许输入的,但不是必须输入的9
:ASCII数字字符是必须输入的(0-9)0
:ASCII数字字符是允许输入的,但不是必须输入的D
:ASCII数字字符是必须输入的(1-9)d
:ASCII数字字符是允许输入的,但不是必须的(1-9)#
:ASCII数字字符与加减字符是允许输入的,但不是必须的H
:十六进制格式字符是必须输入的(A-F,a-f,0-9)h
:十六进制格式字符允许输入,但不是必须的B
:二进制格式字符是必须输入的(0,1)b
:二进制格式字符是允许输入的,但不是必须的>
:所有字母字符都大写<
:所有字母字符都小写!
:关闭大小写转换:使用‘’转义上面列出的字符
掩码由掩码字符与分隔符字符串组成,后面可以跟一个分号和空白字符,空白字符在编辑后会从文本删除的
例如:
000.000.000.000;_
ip地址,空白字符是‘_’HH:HH:HH:HH:HH:HH;
MAC地址0000-00-00;0
日期,空白字符是0>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#
许可证号,所有字母都转换为大写
在QT设计师中切换信号模式,选中文本框拖动信号,弹出信号窗口
QLineEdit
信号
cursorPositionChanged(int,int)
光标位置发生改变时发出的信号,并向外界传递位置(老的光标位置,新的光标位置)editingFinished()
结束编辑时发出的信号(焦点离开:回车键,Tab键,鼠标都可以触发)returnPressed()
按下回车键时发出的信号selectionChanged()
选中的文本发生改变时发出的信号textChanged(QString)
文本框文本发生改变时发出的信号,并向外界传递内容textEdited(QString)
文本编辑时发出的型号,并向外界传递内容
最后两个信号的差别在于:
textChanged(QString)
不管是用户在文本框输入内容,还是开发人员使用代码设置内容,都会发出信号textEdited(QString)
只有用户在文本框输入内容时,才会发出信号
QLineEdit
还有一个比较重要的点就是验证器,需要使用代码操作
# 导入,Qapplication,单行文本框,窗口
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget
# 导入文本校验器:整数校验器,浮点数校验器,正则校验器
from PyQt5.QtGui import QIntValidator, QDoubleValidator, QRegExpValidator
# 导入Qt正则模块
from PyQt5.QtCore import QRegExp
import sys
class lineEditDemo(QWidget):
def __init__(self, parent=None):
super(lineEditDemo, self).__init__(parent)
self.setWindowTitle('QLineEdit例子')
self.resize(300, 300)
int_validato = QIntValidator(50, 100, self) # 实例化整型验证器,并设置范围为50-100
int_le = QLineEdit(self) # 整型文本框
int_le.setValidator(int_validato) # 设置验证
int_le.move(50, 10)
# 实例化浮点型验证器,并设置范围为-100到100,并精确2位小数
float_validato = QDoubleValidator(-100, 100, 2, self)
float_le = QLineEdit(self) # 浮点文本框
float_le.setValidator(float_validato) # 设置验证
float_le.move(50, 50)
re = QRegExp('[a-zA-Z0-9]+$') # 正则:只允许出现的大小写字母和数字
re_validato = QRegExpValidator(re, self) # 实例化正则验证器
re_le = QLineEdit(self) # 正则文本框
re_le.setValidator(re_validato) # 设置验证
re_le.move(50, 90)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = lineEditDemo()
win.show()
sys.exit(app.exec_())
在验证整数时,无法限定最小值,并且可输入的最大值,是上限位数的最大数值,
例如上限是10,那么可输入的最大值是99,上限是100,那么可输入的最大值是999,
对于浮点数,只能限制输入的小数位,无法设定数值范围,所以通常使用正则进行限定
"[a-zA-Z0-9]+$"
限制只允许出现大小写字母和数字"^-?(180|1?[0-7]?d(.d{1,4})?)$"
限制浮点数输入范围为[-180,180],小数位后4位"^([1-9]|[1-9]d|100)$"
限制整数输入访问[1,100]
下面这个网址有比较详细正则例子,请查阅!
RegularExpressionValidator控件中常见正则表达式用法 - happmaoo的专栏 - CSDN博客blog.csdn.net