# encoding: utf-8
'''===================================================
@Project -> File : qt5003 -> QLineEditValidator.py
@IDE : qt5003
@Author : Mr. Batac
@Date : 2020-03-18 21:18
@Desc :限制文本输入框只能输入整数、浮点数、或者满足一定条件的字符串
======================================================'''
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(self)
intLineEdit = QLineEdit()
doubleLineEdit = QLineEdit()
validatorLineEdit = QLineEdit()
formLayout.addRow("整数类型", intLineEdit)
formLayout.addRow("浮点类型", doubleLineEdit)
formLayout.addRow("数字或者字母", validatorLineEdit)
intLineEdit.setPlaceholderText("整数")
doubleLineEdit.setPlaceholderText("浮点")
validatorLineEdit.setPlaceholderText("字母或者数字")
# 整数校验器
intValidator = QIntValidator(self)
intValidator.setRange(1, 99)
# 浮点校验器 小数点后两位
doubleValidator = QDoubleValidator(self)
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)
if __name__ == '__main__':
app = QApplication(sys.argv)
mainView = QLineEditValidator()
mainView.show()
sys.exit(app.exec_())