栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【pyqt5学习】——QLineEdit控件输入校验器、掩码限制输入

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【pyqt5学习】——QLineEdit控件输入校验器、掩码限制输入

目录

1、输入校验器——限制输入框输入的内容

1)校验器类型——整数、浮点数、数字字母结合(正则)

2)步骤

3)结果

​编辑 

 ​编辑

4)完整代码

 2、利用掩码进行输入的限制

0)掩码对照表

1)掩码解释

2)掩码Python实现

3)结果 

4)完整代码

 5)在Qt_designer中设置掩码


1、输入校验器——限制输入框输入的内容

1)校验器类型——整数、浮点数、数字字母结合(正则)
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidator

QIntValidator——整数

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中设置掩码

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920756.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号