📜  PyQt5 – 创建用户表单以获取信息(1)

📅  最后修改于: 2023-12-03 15:18:49.990000             🧑  作者: Mango

PyQt5 – 创建用户表单以获取信息

在PyQt5中,可以使用标准窗口部件创建和设计各种GUI应用程序,其中包括表单。表单是一个包含控件(如文本框,下拉列表等)以获取用户输入的GUI部件。在本教程中,我们将学习如何在PyQt5中创建用户表单以获取信息。

第一步:导入所需的模块

我们需要导入以下模块:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton
  • sys:提供了访问Python解释器的所有变量和功能的特殊变量。
  • QApplication:用于创建GUI应用程序。
  • QWidget:是PyQt5中所有用户界面对象的基础类,用于创建GUI窗口或对话框。
  • QLabel:是一个用于显示文本或图像的控件。
  • QLineEdit:是一个单行文本框,用于获取用户输入。
  • QPushButton:是一个按钮,用于向用户提供一种操作。
第二步:创建GUI窗口和控件

我们需要使用PyQt5中的QWidget类创建GUI窗口并添加所需的控件。在本例中,我们将创建一个GUI窗口,其中包含一个标签,用于说明所需的详细信息,三个文本框,用于获取用户的姓名,电子邮件和电话号码,以及一个“提交”按钮,用于提交表单。

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

        self.init_ui()

    def init_ui(self):
        # 设置窗口标题和大小
        self.setWindowTitle('用户表单')
        self.resize(300, 200)

        # 创建标签和文本框,用于获取用户输入
        self.name_label = QLabel('姓名:', self)
        self.name_label.move(20, 20)
        self.name_input = QLineEdit(self)
        self.name_input.move(100, 20)

        self.email_label = QLabel('电子邮件:', self)
        self.email_label.move(20, 60)
        self.email_input = QLineEdit(self)
        self.email_input.move(100, 60)

        self.phone_label = QLabel('电话:', self)
        self.phone_label.move(20, 100)
        self.phone_input = QLineEdit(self)
        self.phone_input.move(100, 100)

        # 创建提交按钮,并将其连接到自定义函数
        self.submit_button = QPushButton('提交', self)
        self.submit_button.move(100, 140)
        self.submit_button.clicked.connect(self.submit_form)

        # 显示窗口
        self.show()

在以上代码中,我们创建了一个名为“UserForm”的类,作为我们的GUI窗口。在init_ui函数中,我们设置窗口的标题和大小,并创建所需的控件。我们使用move函数将每个控件放置在其所需的位置,并使用show函数显示窗口。

第三步:定义提交表单函数

我们需要创建自定义submit_form函数来获取用户输入并完成所需的操作。在本例中,我们只是简单地将用户输入打印到控制台。

    def submit_form(self):
        name = self.name_input.text()
        email = self.email_input.text()
        phone = self.phone_input.text()

        print(f'姓名:{name}\n电子邮件:{email}\n电话:{phone}')

在以上代码中,我们使用text函数从每个文本框中获取用户输入,并将其打印到控制台。

第四步:运行应用程序

最后,在我们运行此应用程序之前,我们需要使用QApplication类创建应用程序对象。然后,我们需要使用UserForm类创建一个GUI窗口,即应用程序的主窗口。

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = UserForm()
    sys.exit(app.exec_())

运行此文件并测试它,当用户单击提交按钮时,将打印其输入的姓名,电子邮件和电话号码。

完整程序
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton


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

        self.init_ui()

    def init_ui(self):
        # 设置窗口标题和大小
        self.setWindowTitle('用户表单')
        self.resize(300, 200)

        # 创建标签和文本框,用于获取用户输入
        self.name_label = QLabel('姓名:', self)
        self.name_label.move(20, 20)
        self.name_input = QLineEdit(self)
        self.name_input.move(100, 20)

        self.email_label = QLabel('电子邮件:', self)
        self.email_label.move(20, 60)
        self.email_input = QLineEdit(self)
        self.email_input.move(100, 60)

        self.phone_label = QLabel('电话:', self)
        self.phone_label.move(20, 100)
        self.phone_input = QLineEdit(self)
        self.phone_input.move(100, 100)

        # 创建提交按钮,并将其连接到自定义函数
        self.submit_button = QPushButton('提交', self)
        self.submit_button.move(100, 140)
        self.submit_button.clicked.connect(self.submit_form)

        # 显示窗口
        self.show()

    def submit_form(self):
        name = self.name_input.text()
        email = self.email_input.text()
        phone = self.phone_input.text()

        print(f'姓名:{name}\n电子邮件:{email}\n电话:{phone}')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = UserForm()
    sys.exit(app.exec_())

以上是在PyQt5中创建用户表单以获取信息的介绍和示例代码。在本教程中,我们学习了如何使用QWidget类创建GUI窗口,并向其中添加所需的控件。我们还学习了如何使用自定义函数获取用户输入并完成所需的操作。