PyQt5 - QLineEdit正则表达式输入验证器

该博客介绍了如何在PyQt5中利用正则表达式为QLineEdit组件设置输入验证,确保用户输入符合特定格式。
摘要由CSDN通过智能技术生成

PyQt5 - QLineEdit正则表达式输入验证器

参考:

https://stackoverflow.com/questions/39202697/qt-qlineedit-input-validation

https://stackoverflow.com/questions/15829782/how-to-restrict-user-input-in-qlineedit-in-pyqt

from PyQt5 import QtWidgets, QtCore, QtGui, Qt
import re



############## QLineEdit正则表达式输入验证器
class LineEditRegExpValidator(QtGui.QValidator):

    '''
    # 默认为科学计数法输入验证器

    用法
    SciNotValidator = LineEditRegExpValidator() # 创建一个QLineEdit正则表达式输入验证器的类,默认为科学计数法输入验证器

    self.LineEdit1.setValidator(SciNotValidator) # 设置验证器(启用)
    self.LineEdit1.installEventFilter(SciNotValidator) # QLineEdit清空内容且游标失焦时,自动填充上一次的字符串内容

    self.LineEdit2.setValidator(SciNotValidator)
    self.LineEdit2.installEventFilter(SciNotValidator)

    self.LineEdit3.setValidator(SciNotValidator)
    self.LineEdit3.installEventFilter(SciNotValidator)

    Validator.validate() is abstract and must be overriddenValidator.validate() is abstract and must be overridden
    '''

    def __init__(
        self, 

        # 编辑状态框输入结束允许的字符串
        fullPatterns=[
            r"[+|-]?[0-9]+\.?[0-9]*(?:[Ee][+|-]?[0-9]+)?", 
            r'[+|-]{0,1}nan', r'[+|-]{0,1}inf'
            ], 
        
        # 编辑状态框输入尚未结束允许的字符串
        partialPatterns=[
            r'[+|-]?[0-9]+\.?[0-9]*(?:[Ee][+|-]?)?', 
            r'-', 
            r'\+', 
            r'[+|-]{0,1}nan', 
            r'[+|-]{0,1}na', 
            r'[+|-]{0,1}n', 
            r'[+|-]{0,1}inf', 
            r'[+|-]{0,1}in', 
            r'[+|-]{0,1}i'
            ],
        
        fixupString='1.0'
        ):

        super(LineEditRegExpValidator, self).__init__
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值