📌  相关文章
📜  PyQt5 - 检查单选按钮的程序(1)

📅  最后修改于: 2023-12-03 14:45:46.311000             🧑  作者: Mango

PyQt5 - 检查单选按钮的程序

本程序将演示如何使用PyQt5来创建一个简单的用户界面,并检查单选按钮的状态。我们将使用PyQt5库来创建GUI,并使用QGridLayout来布局GUI组件。接下来,我们将创建两个单选按钮,并为它们设置选项文本。当用户单击其中一个单选按钮时,我们将显示相应的信息。

代码实现

步骤1:导入必要的库和模块

在下面的代码中,我们将导入PyQt5库和sys模块。PyQt5库是我们创建GUI和处理事件所需的基本库。sys模块是Python语言的标准库之一,我们将使用它来退出应用程序。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QLabel, QRadioButton

步骤2:创建GUI窗口

我们将创建一个类CheckRadioBtn来表示整个应用程序的GUI窗口。在这个类的构造函数中,我们将创建一个QWidget窗口,并将它的标题设置为“PyQt5 - 检查单选按钮的程序”。然后,我们将设置窗口的大小和位置,并将其显示出来。

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

        self.setWindowTitle('PyQt5 - 检查单选按钮的程序')
        self.setGeometry(300, 300, 400, 150)

        grid_layout = QGridLayout()
        self.setLayout(grid_layout)

        self.show()

步骤3:创建单选按钮

现在,我们将在GUI窗口中创建两个单选按钮,一个用于英语,一个用于法语。我们将使用QRadioButton类来创建单选按钮,并使用QLabel类来创建标签。我们还将将它们添加到QGridLayout中,以便使它们在GUI窗口中自动排列。

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

        self.setWindowTitle('PyQt5 - 检查单选按钮的程序')
        self.setGeometry(300, 300, 400, 150)

        grid_layout = QGridLayout()
        self.setLayout(grid_layout)

        self.eng_radio_btn = QRadioButton('英语')
        self.fra_radio_btn = QRadioButton('法语')

        label = QLabel('你选择的语言是:')

        grid_layout.addWidget(self.eng_radio_btn, 0, 0)
        grid_layout.addWidget(self.fra_radio_btn, 1, 0)
        grid_layout.addWidget(label, 2, 0)

        self.show()

步骤4:将单选按钮连接到事件处理器

现在我们已经创建了单选按钮,但是我们需要一个方法来处理单选按钮的操作。我们将使用成员函数on_radio_btn_checked来处理单选按钮的操作。该函数将检查哪个单选按钮被选中,并相应地设定标签的文本。

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

        self.setWindowTitle('PyQt5 - 检查单选按钮的程序')
        self.setGeometry(300, 300, 400, 150)

        grid_layout = QGridLayout()
        self.setLayout(grid_layout)

        self.eng_radio_btn = QRadioButton('英语')
        self.fra_radio_btn = QRadioButton('法语')

        label = QLabel('你选择的语言是:')

        grid_layout.addWidget(self.eng_radio_btn, 0, 0)
        grid_layout.addWidget(self.fra_radio_btn, 1, 0)
        grid_layout.addWidget(label, 2, 0)

        # 将单选按钮连接到事件处理器
        self.eng_radio_btn.toggled.connect(lambda: self.on_radio_btn_checked(label))
        self.fra_radio_btn.toggled.connect(lambda: self.on_radio_btn_checked(label))

        self.show()

    def on_radio_btn_checked(self, label):
        if self.eng_radio_btn.isChecked():
            label.setText('你选择的语言是:英语')
        elif self.fra_radio_btn.isChecked():
            label.setText('你选择的语言是:法语')

步骤5:启动GUI应用程序

我们已经编写了一个简单的GUI程序,现在我们需要调用QApplication类来启动应用程序。我们将在main函数中创建一个CheckRadioBtn类的实例,并使用QApplication类的exec_()方法来启动应用程序。

def main():
    app = QApplication(sys.argv)
    check_radio_btn = CheckRadioBtn()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
完整代码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QLabel, QRadioButton

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

        self.setWindowTitle('PyQt5 - 检查单选按钮的程序')
        self.setGeometry(300, 300, 400, 150)

        grid_layout = QGridLayout()
        self.setLayout(grid_layout)

        self.eng_radio_btn = QRadioButton('英语')
        self.fra_radio_btn = QRadioButton('法语')

        label = QLabel('你选择的语言是:')

        grid_layout.addWidget(self.eng_radio_btn, 0, 0)
        grid_layout.addWidget(self.fra_radio_btn, 1, 0)
        grid_layout.addWidget(label, 2, 0)

        # 将单选按钮连接到事件处理器
        self.eng_radio_btn.toggled.connect(lambda: self.on_radio_btn_checked(label))
        self.fra_radio_btn.toggled.connect(lambda: self.on_radio_btn_checked(label))

        self.show()

    def on_radio_btn_checked(self, label):
        if self.eng_radio_btn.isChecked():
            label.setText('你选择的语言是:英语')
        elif self.fra_radio_btn.isChecked():
            label.setText('你选择的语言是:法语')

def main():
    app = QApplication(sys.argv)
    check_radio_btn = CheckRadioBtn()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
结论

本程序演示了如何使用PyQt5库来创建简单的GUI窗口,并检查单选按钮的状态。我们使用QRadioButton类来创建单选按钮,使用QLabel类来创建标签,并使用QGridLayout类来布局GUI组件。我们还使用了lambda表达式将单选按钮连接到事件处理器,以响应单选按钮的操作。本程序可以帮助您了解如何使用PyQt5来创建具有交互性的GUI应用程序。