天天看点

6.QLineEdit 控件 校验器

如限制只能输入整数,浮点数,或满足一定条件的字符串

def initUI(self):
        # self.setGeometry(300,300, 500,500)
        self.move(500,500)
        self.setWindowTitle('QLineEditValidator')

        intLineEdit = QLineEdit()
        intLineEdit.setPlaceholderText("整形")
        #整数校验器0-99
        intValidator = QIntValidator()
        intValidator.setRange(1,99)
        intLineEdit.setValidator(intValidator) #设置校验器

        doubleLineEdit = QLineEdit()
        doubleLineEdit.setPlaceholderText("浮点数")
        doubleValidator = QDoubleValidator()
        doubleValidator.setRange(-360,360) #浮点校验器
        doubleValidator.setNotation(QDoubleValidator.StandardNotation)#标准表示法
        doubleValidator.setDecimals(2) #设置精度2位
        doubleLineEdit.setValidator(doubleValidator)#设置校验器

        validatorLineEdit = QLineEdit()
        validatorLineEdit.setPlaceholderText("字母和数字")
        validatorValidator = QRegExpValidator()  #正则校验器初始化
        reg =QRegExp('[a-zA-Z0-9]+$') #设置正则表达式
        validatorValidator.setRegExp(reg)
        validatorLineEdit.setValidator(validatorValidator)#设置校验器

        formlayout = QFormLayout()  # 表单布局
        formlayout.addRow('整形类型',intLineEdit)
        formlayout.addRow('浮点类型',doubleLineEdit)
        formlayout.addRow('数字和字母',validatorLineEdit)

        self.setLayout(formlayout)