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

  • Post category:Python

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

在PyQt5中,我们可以使用QLineEdit控件来实现文本输入框,而使用正则表达式输入验证器可以限制用户输入的内容。本文将详细绍如何使用正则表达式输入验证器来验证用户输入,并提供两个示例说明。

步骤

使用正则表达式输入验证器来验证用户输入的步骤如下:

  1. 创建QLineEdit控件。
  2. 创建正则表达式输入验证器。
  3. 将验证器应用到QLineEdit控件中。

示例1:限制用户输入数字

以下是一个示例代码,用于限制用户在QLineEdit控件中只能输入数字:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout
from PyQt5.QtGui import QRegExpValidator
from PyQt5.QtCore import QRegExp

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout()

        # 创建QLineEdit控件
        line_edit = QLineEdit(self)
        vbox.addWidget(line_edit)

        # 创建正则表达式输入验证器
        reg_ex = QRegExp("[0-9]+")
        validator = QRegExpValidator(reg_ex, line_edit)

        # 将验证器应用到QLineEdit控件中
        line_edit.setValidator(validator)

        self.setLayout(vbox)
        self.setGeometry(300,300, 300, 150)
        self.setWindowTitle('QLineEdit Validator')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在这个示例中,我们首先创建了一个QLineEdit控件,并将其添加到一个垂直布局中。接着,我们创建了一个正则表达式输入验证器,该验证器只允许用户输入数字。最后,我们将验证器应用到QLineEdit控件中,并显示窗口。

示例2:限制用户输入IP地址

以下是一个示例代码,用于限制用户在QLineEdit控件中只能输入IP地址:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout
from PyQt5.QtGui import QRegExpValidator
from PyQt5.QtCore import QRegExp

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout()

        # 创建QLineEdit控件
        line_edit = QLineEdit(self)
        vbox.addWidget(line_edit)

        # 创建正则表达式输入验证器
        reg_ex = QRegExp("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\."
                         "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\."
                         "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\."
                         "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
        validator = QRegExpValidator(reg_ex, line_edit)

        # 将验证器应用到QLineEdit控件中
        line_edit.setValidator(validator)

        self.setLayout(vbox)
        self.setGeometry(300, 300, 300, 150)
        self.setWindowTitle('QLineEdit Validator')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在这个示例中,我们首先创建了一个QLineEdit控件,并将其添加到一个垂直布局中。接着,我们创建了一个正则表达式输入验证器,该验证器只允许用户输入IP地址。最后,我们将验证器应用到QLineEdit控件中,并显示窗口。

以上就是PyQt5实现QLineEdit正则表达式输入验证器的完整攻略包括步骤和两个示例说明。