pyqt5限制文本控件的输入
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidator
from PyQt5.QtCore import QRegExp
import sys
class QLineEditValidator(QWidget):
def __init__(self):
super(QLineEditValidator,self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('校验器')
**#创建表单布局**
formLayout=QFormLayout()
intLineEdit=QLineEdit()
doubleLineEdit=QLineEdit()
validatorLineEdit=QLineEdit()
formLayout.addRow('整数类型',intLineEdit)
formLayout.addRow('浮点类型',doubleLineEdit)
formLayout.addRow('数字和字母',validatorLineEdit)
intLineEdit.setPlaceholderText('整型')
doubleLineEdit.setPlaceholderText('浮点型')
validatorLineEdit.setPlaceholderText('数字和字母')
**#整数校验器[1,99]**
intValidator=QIntValidator()
intValidator.setRange(1,99)
**#浮点校验器[-360,360],精度小数点后2位**
doubleValidator=QDoubleValidator()
doubleValidator.setRange(-360,360)
doubleValidator.setNotation(QDoubleValidator.StandardNotation)
**#设置精度**
doubleValidator.setDecimals(2)
**#数字字母校验器**
reg=QRegExp('[a-zA-Z0-9]+$')
validator=QRegExpValidator(self)
validator.setRegExp(reg)
**#设置校验器**
intLineEdit.setValidator(intValidator)
doubleLineEdit.setValidator(doubleValidator)
validatorLineEdit.setValidator(validator)
**#设置布局**
self.setLayout(formLayout)
有点bug,整数和浮点数都会出现不符合的现象,所以说最好使用正则表达式来控制。