Eric6限制用户输入

通常情况下,我们会对用户的输入做一些限制,可以使用验证器和输入掩码来进行

常见的验证器(Validator):整型验证器、浮点型验证器及自定义验证器

常见的输入掩码:IP地址、MAC地址、日期、许可证号等

我们来分析一个综合验证器与掩码的例子:

# -*- coding: utf-8 -*-

from PyQt5.QtWidgets import QApplication,  QLineEdit , QWidget ,  QFormLayout
from PyQt5.QtGui import QIntValidator , QDoubleValidator , QFont
from PyQt5.QtCore import Qt
import sys  

class lineEditDemo(QWidget):
    def __init__(self, parent=None):
        super(lineEditDemo, self).__init__(parent)
        e1 = QLineEdit()             # 文本框e1
        e1.setValidator( QIntValidator() )   # int值有效
        e1.setMaxLength(4)           # 最长4位
        e1.setAlignment( Qt.AlignRight )     # 靠右
        e1.setFont( QFont("Arial",20))       # 设置字体字号
        e2 = QLineEdit()             # 文本框e2
        e2.setValidator( QDoubleValidator(0.99,99.99,2))   # 保留两位小数
        flo = QFormLayout()          # 设置表单布局
        flo.addRow("integer validator", e1)
        flo.addRow("Double validator",e2)
        e3 = QLineEdit()             # 文本框e3
        e3.setInputMask('+99_9999_9999999')  # 输入掩码应用于电话号码
        flo.addRow("Input Mask",e3)          
        e4 = QLineEdit()             # 文本框e4
        e4.textChanged.connect( self.textchanged ) # 发射textChanged信号连接槽函数textchanged                                               
        flo.addRow("Text changed",e4)
        e5 = QLineEdit()             # 文本框e5
        e5.setEchoMode( QLineEdit.Password )     # 设置显示模式EchoMode为Password,发射edtingfinished信号连接到槽函数enterPress()
        flo.addRow("Password",e5)
        e6 = QLineEdit("Hello PyQt5")          # 文本框e6
        e6.setReadOnly(True)                   # 设置只读
        flo.addRow("Read Only",e6 )
        e5.editingFinished.connect( self.enterPress )
        self.setLayout(flo)
        self.setWindowTitle("QLineEdit例子")   # 设置窗口标题 

    def textchanged(self, text):              # textchanged函数
        print( "输入的内容为: "+text )

    def enterPress( self ):                   # enterPress函数
        print( "已输入值" )


if __name__ == "__main__":         # 执行与退出
    app = QApplication(sys.argv)
    win = lineEditDemo()    
    win.show()  
    sys.exit(app.exec_())

程序运行截图:

这里写图片描述

textchanged函数:

这里写图片描述

enterPress函数:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41656968/article/details/80299191