PyQt5 – QLineEdit小工具

  • Post category:Python

PyQt5是一个功能丰富的框架,提供了很多可以帮助我们构建GUI应用程序的小工具。QLineEdit就是其中的一个常用的小工具,可以让用户在GUI中输入和编辑文本信息。

使用QLineEdit有以下几个步骤:

第一步:导入QLineEdit模块

from PyQt5.QtWidgets import QLineEdit

第二步:创建QLineEdit对象

# 创建QLineEdit对象
textbox = QLineEdit(parent)

第三步:设置QLineEdit的参数

QLineEdit有很多可以设置的选项,下面列出了一些常用的选项:

  • setText():设置QLineEdit的初始文本。
  • setPlaceholderText():设置QLineEdit的提示文本。
  • setMaxLength():设置QLineEdit的最大长度。
  • setReadOnly():设置QLineEdit是否只读。
  • setAlignment():设置QLineEdit的文本对齐方式。
  • setValidator():设置QLineEdit的验证器。
textbox.setPlaceholderText("请输入用户名")
textbox.setMaxLength(20)
textbox.setAlignment(Qt.AlignCenter)

第四步:获取和设置QLineEdit的文本内容

使用QLineEdit的text()方法可以获取文本框中的文本内容,使用setText()方法可以设置文本框中的文本内容。

# 获取文本框中的文本内容
text = textbox.text()

# 设置文本框中的文本内容
textbox.setText("Hello PyQt5")

示例说明一:

from PyQt5.QtWidgets import QWidget, QApplication, QLineEdit

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

        self.initUI()

    def initUI(self):
        # 创建 QLineEdit 对象并设置默认文本
        self.textbox = QLineEdit(self)
        self.textbox.setPlaceholderText("请输入文字")

        # 将 textChanged 信号连接到 onTextChanged 方法
        self.textbox.textChanged.connect(self.onTextChanged)

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

    def onTextChanged(self, text):
        # 打印文本框内容
        print(text)

if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

在这个示例中,我们创建了一个QLineEdit对象,在输入框中输入文本时,会触发textChanged信号,我们将这个信号连接到槽函数onTextChanged()中,用来处理文本框内容改变时的操作。当文本框中的内容发生变化时,就会将最新的文本框内容打印输出。

示例说明二:

from PyQt5.QtWidgets import QWidget, QApplication, QLineEdit, QPushButton

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

        self.initUI()

    def initUI(self):
        # 创建 QLineEdit 和 按钮 对象
        self.textbox = QLineEdit(self)
        self.button = QPushButton('清除', self)

        # 设置 QLineEdit 的文本对齐方式
        self.textbox.setAlignment(Qt.AlignCenter)

        # 将按钮的 clicked 信号连接到 clearText 槽函数
        self.button.clicked.connect(self.clearText)

        # 设置 QLineEdit 和 按钮 的位置和大小
        self.textbox.setGeometry(30, 50, 150, 30)
        self.button.setGeometry(190, 50, 60, 30)

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

    def clearText(self):
        # 清空文本框
        self.textbox.clear()

if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

在这个示例中,我们创建了一个QLineEdit对象、一个QPushButton对象,将两者放在了同一个窗口中,设置了QPushButton的clicked信号,连接到了槽函数clearText()中,用来清除文本框的内容。通过这个示例可以看到,在PyQt5中,我们可以轻松地构建出带有文本输入框和按钮的GUI应用程序。