【pyqt5学习】——QLineEdit控件输入校验器Validator、掩码setInputMask限制输入、textChanged信号
2023-09-11 14:21:45 时间
目录
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 sys
app = 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 sys
app = QApplication(sys.argv)
demoWin = QLineEditMaskLearn()
demoWin.show()
sys.exit(app.exec_())
5)在Qt_designer中设置掩码
3、QLineEdit信号textChanged()
textChanged()——当输入框中的文本内容发生改变时,会触发绑定的槽函数事件
输入框名称.textChanged.connect(槽函数)
相关文章
- 关于显示器显示输入信号超出范围,请调整为1600x900@60hz解决办法
- 输入手机号自动分隔
- 文本框输入数字显示千位分隔符,大写提示
- 为什么mysql设置了密码之后,本地还可以直接访问,不需要输入密码就可以登录数据库了?
- Sql Server中存储过程中输入和输出参数(简单实例,一看就懂)
- 如鲠在喉的电路 - 当BJT的负载和输入都呈电感特性时的 Hartley振荡器
- OpenCV2.4.13在VS2012环境的debug模式下的链接库输入配置的文件目录
- 68 C++ - 标准输入流
- 【VSCode】配置vue快捷键/快速输入/模板
- MVC验证03-自定义验证规则、禁止输入某些值
- 函数是什么:输入、输出、关系(联系)
- Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
- 关于手机端属于框获取焦点调出的输入键盘有前往按钮的方法
- vs2012打开提示加载失败(该项目需要用户输入)
- Pycharm无法输入中文
- 【深度学习】——如何处理输入图像大小不一样的情况
- C语言字符串输入总结整理