目录
1、输入校验器——限制输入框输入的内容
1)校验器类型——整数、浮点数、数字字母结合(正则)
2)步骤
3)结果
编辑
编辑
4)完整代码
2、利用掩码进行输入的限制
0)掩码对照表
1)掩码解释
2)掩码Python实现
3)结果
4)完整代码
5)在Qt_designer中设置掩码
3、QLineEdit信号textChanged()
1、输入校验器——限制输入框输入的内容
1)校验器类型——整数、浮点数、数字字母结合(正则)
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidatorQIntValidator——整数
QDoubleValidator——浮点数类型
QRegExpValidator——数字和字母组合类型
2)步骤
①创建输入框
②创建校验器,并且设置输入的范围等
# 校验器设置## 整数intVal = QIntValidator()intVal.setRange(1,99)## 浮点数doubleVal = QDoubleValidator()doubleVal.setRange(-360,360)doubleVal.setNotation(QDoubleValidator.StandardNotation) # 标准显示doubleVal.setDecimals(2) # 设置浮点数精度## 利用正则设置字母和数字结合reg = QRegExp("[a-zA-Z0-9]+$")regVal = QRegExpValidator()regVal.setRegExp(reg)
③将校验器与校验器结合在一起
# 将校验器和输入框绑定intLineEdit.setValidator(intVal)doubleLineEdit.setValidator(doubleVal)regLineEdit.setValidator(regVal)
3)结果
4)完整代码
# -*- coding: utf-8 -*-
# @Time : 2022/5/20 16:44
# @Author : @linlianqin
# @Site :
# @File : QLineEdit_learn.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import QDialog,QLabel,QLineEdit,QPushButton,QFormLayout,QApplication,QWidget
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidator
from PyQt5.QtCore import QRegExp# 校验器学习
class QLineEditValLearn(QWidget):def __init__(self):super(QLineEditValLearn, self).__init__()self.InitUI()# 初始化界面def InitUI(self):self.setWindowTitle("QLineEdit校验器学习")# 创建多个输入框intLineEdit = QLineEdit()doubleLineEdit = QLineEdit()regLineEdit = QLineEdit()# 创建一个form布局formLayout = QFormLayout()# 将控件放入布局中formLayout.addRow("整数",intLineEdit)formLayout.addRow("浮点数",doubleLineEdit)formLayout.addRow("字母数字组合",regLineEdit)# 在输入框中显示灰色字体,用于提示intLineEdit.setPlaceholderText("整数")doubleLineEdit.setPlaceholderText("浮点数")regLineEdit.setPlaceholderText("字母数字组合")# 校验器设置## 整数intVal = QIntValidator()intVal.setRange(1,99)## 浮点数doubleVal = QDoubleValidator()doubleVal.setRange(-360,360)doubleVal.setNotation(QDoubleValidator.StandardNotation) # 标准显示doubleVal.setDecimals(2) # 设置浮点数精度## 利用正则设置字母和数字结合reg = QRegExp("[a-zA-Z0-9]+$")regVal = QRegExpValidator()regVal.setRegExp(reg)# 将校验器和输入框绑定intLineEdit.setValidator(intVal)doubleLineEdit.setValidator(doubleVal)regLineEdit.setValidator(regVal)# 将布局放入到里面self.setLayout(formLayout)if __name__ == '__main__':import sysapp = QApplication(sys.argv)demoWin = QLineEditValLearn()demoWin.show()sys.exit(app.exec_())
2、利用掩码进行输入的限制
0)掩码对照表
1)掩码解释
日期掩码、Mac地址掩码、许可证掩码、ip地址掩码等,根据自己的需求进行设置
2)掩码Python实现
分号前的是预设的掩码,分号后是在不输入的情况下的默认显示的字符(掩码)
# 设置掩码——掩码其实就是根据常见的模式设置好了显示的内容格式和长度ipLineEdit.setInputMask("000.000.000.000;_")macLineEdit.setInputMask("HH:HH:HH:HH:HH:HH;_")dateLineEdit.setInputMask("0000-00-00;*")licenseLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#")
3)结果
未输入前
输入部分后
可以看到,输入了的地方就变成了输入内容,其余未输入的地方就还是默认格式(掩码),若删除输入的内容,显示的还是默认字符(掩码)
4)完整代码
# 掩码限制输入
class QLineEditMaskLearn(QWidget):def __init__(self):super(QLineEditMaskLearn, self).__init__()self.InitUI()# 初始化界面def InitUI(self):self.setWindowTitle("QLineEdit校验器学习")# 创建多个输入框ipLineEdit = QLineEdit()macLineEdit = QLineEdit()dateLineEdit = QLineEdit()licenseLineEdit = QLineEdit()# 设置掩码——掩码其实就是根据常见的模式设置好了显示的内容格式和长度ipLineEdit.setInputMask("000.000.000.000;_")macLineEdit.setInputMask("HH:HH:HH:HH:HH:HH;_")dateLineEdit.setInputMask("0000-00-00;*")licenseLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#")# 创建一个form布局formLayout = QFormLayout()# 将控件放入布局中formLayout.addRow("数字掩码",ipLineEdit)formLayout.addRow("mac掩码",macLineEdit)formLayout.addRow("日期掩码",dateLineEdit)formLayout.addRow("许可证掩码",licenseLineEdit)# 将布局放入到里面self.setLayout(formLayout)if __name__ == '__main__':import sysapp = QApplication(sys.argv)demoWin = QLineEditMaskLearn()demoWin.show()sys.exit(app.exec_())
5)在Qt_designer中设置掩码
3、QLineEdit信号textChanged()
textChanged()——当输入框中的文本内容发生改变时,会触发绑定的槽函数事件
输入框名称.textChanged.connect(槽函数)