PyQt5学习笔记(二) 文本控件及使用

文章目录

  • 写在前面
  • QLineEdit控件
    • 回显模式(Echo Mode)
    • 校验器(Validator)
    • ASCII掩码
  • QTextEdit控件
  • 其他不常用的一些文本控件
    • QSpinBox控件
    • QDoubleSpinBox控件
  • 小结
  • 主要参考

写在前面

上回写了一下PyQt5的一些入门的内容以及QLabel的使用。这次主要总结一下文本控件(单行:QLineEdit;多行:QTextEdit)的几种方法以及具体实现。

其实这个文本控件,说白了就是控制数据输入输出的控件,下面具体介绍。

QLineEdit控件

主要用于单行文本的输入,有如下的几个常用方法:

  1. .setReadOnly(True):设置只读文本。
  2. .setInputMask('99_9;#'):设置ASCII掩码,下面详细介绍。
  3. .setValidator():设置校验器。
  4. .setEchoMode()设置回显模式。
  5. .setMaxLength():设置文本最大长度。
  6. .setAlignment():设置输入文本的对齐方式。
  7. .setFont():设置文本的字体及大小。

回显模式(Echo Mode)

顾名思义,就是在用户键入文本后在GUI界面的现实情况,在PyQt5中QLineEdit控件有如下的四种回显模式。

  1. Normal:正常,即直接输出用户输入的文本,不做任何处理。
  2. NoEcho:无回显,即隐藏用户的输入,在Linux的终端中常见。
  3. Password:密码,以大黑圆点(我起的)显示用户的输入,常用于各类密码的设置。
  4. PasswordEchoOnEdit:正在编辑状态的密码,即用户用户输入时为Normal模式,停止编辑后变成大黑圆点。

校验器(Validator)

用于限制用户的输入,如限制只能输入整数、浮点数或规则字符串(支持正则表达式,需要导入QRegExp模块)。

  1. 校验整数:QIntValidator()以及.setRange(),后者设置数字范围
  2. 校验浮点数:QDoubleValidator().setRange().setNotation().setDecimals(),后者分别设置数字范围、表示法及精度
  3. 校验数字+字母:QRegExpValidator().setRegExp()使用正则表达式,例如仅允许用户输入数字及字母,可记为:QRegExp('[a-zA-z0-9+$]')

ASCII掩码

用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)
>  所有的字母字符都大写
<  所有的字母字符都小写
!  关闭大小写转换
\  使用"\"转义上面列出的字符

QTextEdit控件

主要用于多行文本的输入和输出,支持HTML标签语法,不过输出的一整段HTML是完整的HTML文件,包含头(DOCTYPE)和内容()。

  1. .setPlainText():显示普通文本。
  2. .toPlainText():读取已输入的文本到Python控制台。
  3. .setHtml():显示带HTML标签的文本。
  4. .toHtml():读取已输入的HTML标签(一个完整HTML文件的全部内容)到Python控制台。

其他不常用的一些文本控件

QSpinBox控件

专门用于输入输出整数的控件,还可以使用二进制、十六进制显示。其实严格意义上说这个控件应该叫计数器控件。

QDoubleSpinBox控件

专门用于输入输出浮点数的控件。

这里不进行详细的代码介绍,感兴趣的话可以参看文献[1]。

小结

本文介绍了两种主要的文本控件,以及一些不常用的文本控件,这些控件用于在GUI中进行数据的输入和输出的控制,是常用的控件类型,需要熟悉一些主要的方法及其调用。

主要参考

[1] 王维波, 栗宝鹃, 张晓东. Python Qt GUI与数据可视化编程. 人民邮电出版社. 2019.9.
[2] 网易云课程:《PyQt5教程》. 李宁.

你可能感兴趣的:(Python,#,PyQt5)