说明
QLineEdit控件的输入校验器 - 限制只能输入整数、浮点数或满足一定条件的字符串。
校验器
校验器 | 描述 |
---|---|
QIntValidator | 对输入的整数文本进行校验, 可设置范围 |
QDoubleValidator | 对输入的浮点数文本进行校验, 可设置范围、精度 |
QRegExpValidator | 使用自定义的正则表达式对输入的文本进行校验,可控制输入内容 |
测试Demo
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtWidgets import QLineEdit, QFormLayout
from PyQt5.QtGui import QIntValidator # 整数文本校验
from PyQt5.QtGui import QDoubleValidator # 浮点数文本校验
from PyQt5.QtGui import QRegExpValidator # 自定义的正则表达式对输入的文本进行校验
from PyQt5.QtCore import QRegExp # 正则表达式
class QLineEditValidatorDemo(QWidget):
def __init__(self):
super(QLineEditValidatorDemo, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('校验器')
self.resize(500, 300)
# 创建表单布局
formLayout = QFormLayout()
intLineEdit = QLineEdit() # 整数文本输入框
doubleLineEdit = QLineEdit() # 浮点数文本输入框
validatorLineEdit = QLineEdit() # 自定义文本输入框
# 设置输入框的占位符
intLineEdit.setPlaceholderText('整型')
doubleLineEdit.setPlaceholderText('浮点型')
validatorLineEdit.setPlaceholderText('字母和数字')
# 整数校验器 [1,99]
intValidator = QIntValidator(self)
intValidator.setRange(1, 99) # 设置整数范围, 两位整数
# 浮点校验器 [-100, 100],精度:小数点后2位
doubleValidator = QDoubleValidator(self)
doubleValidator.setRange(-100, 100) # 设置范围, 三位整数
doubleValidator.setNotation(QDoubleValidator.StandardNotation)
doubleValidator.setDecimals(2) # 设置精度,小数点2位
# 正则表达式校验器, 字符和数字
reg = QRegExp('[a-zA-z0-9]+$')
validator = QRegExpValidator(self)
validator.setRegExp(reg)
# 设置校验器
intLineEdit.setValidator(intValidator)
doubleLineEdit.setValidator(doubleValidator)
validatorLineEdit.setValidator(validator)
# 将空间添加到表单布局
formLayout.addRow('整数类型', intLineEdit)
formLayout.addRow('浮点类型', doubleLineEdit)
formLayout.addRow('数字和字母', validatorLineEdit)
self.setLayout(formLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QLineEditValidatorDemo()
main.show()
sys.exit(app.exec_())