文章目录
- 前言
- 一、回显模式(EchoMode)
- 1.1 四种回显模式
- 1.2 代码展示
- 运行结果
- 二、校验器
- 2.1 代码
- 2.2 运行结果
- 三、通过掩码限制输入
- 3.1 代码
- 3.2 运行结果
- 总结
前言
1、QLineEdit 可以输入单行文字
2、回显模式
3、校验器
4、掩码输入
一、回显模式(EchoMode)
1.1 四种回显模式
1、Normal
输入什么,显示什么
2、NoEcho
输入信息,可以传达给计算机,但是不显示。
3、password
输入信息,可以传达给计算机,但是直接显示圆圈。
4、passwordEchoOnEdit
输入信息,先显示一段时间,然后变成掩码。
1.2 代码展示
'''
#Author :susocool
#Creattime:2024/2/9
#FileName:019 - QLineEdit
#Description:四种回显模式
'''
from PyQt5.QtWidgets import *
import sys
class QLineEditEchoMode(QWidget):
def __init__(self):
super(QLineEditEchoMode, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('文本框的回显模式')
formLayout = QFormLayout()
normalLineEdit = QLineEdit()
noEchoLineEdit = QLineEdit()
passwordLineEdit = QLineEdit()
passwordEchoOnEditLineEdit = QLineEdit()
formLayout.addRow("Normal",normalLineEdit)
formLayout.addRow("noEcho", noEchoLineEdit)
formLayout.addRow("password", passwordLineEdit)
formLayout.addRow("passwordEchoOnEdit", passwordEchoOnEditLineEdit )
# setPlaceholderText() : 输入框(input)或文本区域(textarea)中的占位文本。
normalLineEdit.setPlaceholderText('Normal')
noEchoLineEdit.setPlaceholderText('NoEcho')
passwordLineEdit.setPlaceholderText('password')
passwordEchoOnEditLineEdit.setPlaceholderText('passwordEchoOnEdit')
normalLineEdit.setEchoMode(QLineEdit.Normal)
noEchoLineEdit.setEchoMode(QLineEdit.NoEcho)
passwordLineEdit.setEchoMode(QLineEdit.Password)
passwordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit)
self.setLayout(formLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QLineEditEchoMode()
main.show()
sys.exit(app.exec_())
运行结果
无输入
正常情况
已有输入,但是不显示
二、校验器
限制输入是整数、浮点数或者满足一定条件的字符串。
2.1 代码
'''
#Author :susocool
#Creattime:2024/2/9
#FileName:020-QlineEdit校验器
#Description: 校验器
'''
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegularExpressionValidator
from PyQt5.QtCore import QRegularExpression # 正则表达式
import sys
class QLineEditValidator(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('校验器')
# 创建表单布局
formLayout = QFormLayout()
intLineEdit = QLineEdit()
doubleEdit = QLineEdit()
validatoredit = QLineEdit()
formLayout.addRow('整数布局',intLineEdit)
formLayout.addRow('浮点类型',doubleEdit)
formLayout.addRow('数字和字母',validatoredit)
intLineEdit.setPlaceholderText('整数(1~99)')
doubleEdit.setPlaceholderText('浮点型(-360~360)')
validatoredit.setPlaceholderText('字母和数字')
# 整数校验器
intValitor = QIntValidator(self)
intValitor.setRange(1,99)
# 浮点数校验器
doubleValidator = QDoubleValidator(self)
doubleValidator.setRange(-360,360)
doubleValidator.setNotation(QDoubleValidator.StandardNotation) # 正常显示浮点数
doubleValidator.setDecimals(2) # 设置精度,小数点后两位
# 字符和数字
# 表示匹配任意一个字母(大小写不敏感)或数字字符。+表示匹配前面的模式一次或多次。$表示匹配输入的结尾位置。
reg = QRegularExpression('[a-zA-z0-9]+$')
validator = QRegularExpressionValidator(reg,self)
validatoredit.setValidator(validator)
# 设置校验器
intLineEdit.setValidator(intValitor)
doubleEdit.setValidator(doubleValidator)
validatoredit.setValidator(validator)
# 设置布局 !!!
self.setLayout(formLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QLineEditValidator()
main.show()
sys.exit(app.exec_())
2.2 运行结果
三、通过掩码限制输入
PyQt5系列教程(28): QLineEdit 2
3.1 代码
'''
#Author :susocool
#Creattime:2024/2/10
#FileName:021-QLineEdit掩码
#Description:
'''
from PyQt5.QtWidgets import *
import sys
class QLineEditMask(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("用掩码限制QLineEdit控件输入")
formLayout = QFormLayout()
ipLineEdit = QLineEdit()
macLineEdit = QLineEdit()
dateLineEdit = QLineEdit()
licenseLineEdit = QLineEdit()
# 设置掩码
# 一般ip是192.168.21.21 一般是三位数
ipLineEdit.setInputMask('000.000.000.000;_') # 没有输入的时候显示是下划线的形式
macLineEdit.setInputMask('HH:HH:HH:HH:HH:HH;_')
dateLineEdit.setInputMask('0000-00-00')
licenseLineEdit.setInputMask('>AAAAA-AAAAA-AAAA-AAAAA-AAAAA;#')
formLayout.addRow('数字掩码',ipLineEdit)
formLayout.addRow('Mac掩码',macLineEdit)
formLayout.addRow('日期掩码',dateLineEdit)
formLayout.addRow('许可证掩码',licenseLineEdit)
self.setLayout(formLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QLineEditMask()
main.show()
sys.exit(app.exec_())
3.2 运行结果
总结
这篇文章依旧没有总结