上回写了一下PyQt5的一些入门的内容以及QLabel的使用。这次主要总结一下文本控件(单行:QLineEdit;多行:QTextEdit)的几种方法以及具体实现。
其实这个文本控件,说白了就是控制数据输入输出的控件,下面具体介绍。
主要用于单行文本的输入,有如下的几个常用方法:
.setReadOnly(True)
:设置只读文本。.setInputMask('99_9;#')
:设置ASCII掩码,下面详细介绍。.setValidator()
:设置校验器。.setEchoMode()
设置回显模式。.setMaxLength()
:设置文本最大长度。.setAlignment()
:设置输入文本的对齐方式。.setFont()
:设置文本的字体及大小。顾名思义,就是在用户键入文本后在GUI界面的现实情况,在PyQt5中QLineEdit控件有如下的四种回显模式。
用于限制用户的输入,如限制只能输入整数、浮点数或规则字符串(支持正则表达式,需要导入QRegExp
模块)。
QIntValidator()
以及.setRange()
,后者设置数字范围QDoubleValidator()
和.setRange()
、.setNotation()
、.setDecimals()
,后者分别设置数字范围、表示法及精度QRegExpValidator()
,.setRegExp()
使用正则表达式,例如仅允许用户输入数字及字母,可记为:QRegExp('[a-zA-z0-9+$]')
用ASCII掩码限制QLineEdit控件的输入(下面的内容来自李宁老师的PyQt5课程的资料,有兴趣可以从B站评论区下载)。以下是一些掩码及其对应的内容。
A ASCII字母字符是必须输入的(A-Z、a-z)
a ASCII字母字符是允许输入的,但不是必需的(A-Z、a-z)
N ASCII字母字符是必须输入的(A-Z、a-z、0-9)
n ASII字母字符是允许输入的,但不是必需的(A-Z、a-z、0-9)
X 任何字符都是必须输入的
x 任何字符都是允许输入的,但不是必需的
9 ASCII数字字符是必须输入的(0-9)
0 ASCII数字字符是允许输入的,但不是必需的(0-9)
D ASCII数字字符是必须输入的(1-9)
d ASCII数字字符是允许输入的,但不是必需的(1-9)
# ASCI数字字符或加减符号是允许输入的,但不是必需的
H 十六进制格式字符是必须输入的(A-F、a-f、0-9)
h 十六进制格式字符是允许输入的,但不是必需的(A-F、a-f、0-9)
B 二进制格式字符是必须输入的(0,1)
b 二进制格式字符是允许输入的,但不是必需的(0,1)
> 所有的字母字符都大写
< 所有的字母字符都小写
! 关闭大小写转换
\ 使用"\"转义上面列出的字符
主要用于多行文本的输入和输出,支持HTML标签语法,不过输出的一整段HTML是完整的HTML文件,包含头(DOCTYPE)和内容(
)。.setPlainText()
:显示普通文本。.toPlainText()
:读取已输入的文本到Python控制台。.setHtml()
:显示带HTML标签的文本。.toHtml()
:读取已输入的HTML标签(一个完整HTML文件的全部内容)到Python控制台。专门用于输入输出整数的控件,还可以使用二进制、十六进制显示。其实严格意义上说这个控件应该叫计数器控件。
专门用于输入输出浮点数的控件。
这里不进行详细的代码介绍,感兴趣的话可以参看文献[1]。
本文介绍了两种主要的文本控件,以及一些不常用的文本控件,这些控件用于在GUI中进行数据的输入和输出的控制,是常用的控件类型,需要熟悉一些主要的方法及其调用。
[1] 王维波, 栗宝鹃, 张晓东. Python Qt GUI与数据可视化编程. 人民邮电出版社. 2019.9.
[2] 网易云课程:《PyQt5教程》. 李宁.