当前位置:首页python > 正文

如何从pyqt中的组框中获取选中的单选按钮

作者:野牛程序员:2023-08-08 09:32:02python阅读 2696

在 PyQt 中,如果有一个组框(QGroupBox)中包含多个单选按钮(QRadioButton),并且想要获取用户选择的单选按钮,你可以使用单选按钮的信号和槽机制来实现。以下是一个示例代码,演示如何从组框中获取选中的单选按钮:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QGroupBox, QVBoxLayout, QRadioButton, QPushButton, QLabel

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.groupBox = QGroupBox("Select an option", self)
        self.groupBox.setGeometry(10, 10, 300, 100)
        layout = QVBoxLayout()
        self.groupBox.setLayout(layout)

        self.radioButton1 = QRadioButton("Option 1", self)
        self.radioButton2 = QRadioButton("Option 2", self)
        self.radioButton3 = QRadioButton("Option 3", self)

        layout.addWidget(self.radioButton1)
        layout.addWidget(self.radioButton2)
        layout.addWidget(self.radioButton3)

        self.label = QLabel(self)
        self.label.setGeometry(10, 120, 300, 30)

        self.button = QPushButton("Get Selected Option", self)
        self.button.setGeometry(10, 160, 150, 30)
        self.button.clicked.connect(self.get_selected_option)

    def get_selected_option(self):
        if self.radioButton1.isChecked():
            self.label.setText("Selected option: Option 1")
        elif self.radioButton2.isChecked():
            self.label.setText("Selected option: Option 2")
        elif self.radioButton3.isChecked():
            self.label.setText("Selected option: Option 3")
        else:
            self.label.setText("No option selected")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyWindow()
    window.setGeometry(100, 100, 400, 230)
    window.show()
    sys.exit(app.exec_())

在这个示例中,创建了一个继承自 QMainWindow 的自定义窗口类 MyWindow。在构造函数中,创建了一个组框,其中包含三个单选按钮。然后,我们创建一个用于显示选中选项的标签和一个按钮。

get_selected_option 槽函数中,使用 isChecked() 方法来判断哪个单选按钮被选中。然后,根据选中的情况,更新标签的文本以显示选中的选项。

运行这个示例代码时,会看到一个窗口,其中有一个组框,内含三个单选按钮。当你点击 "Get Selected Option" 按钮时,标签会显示选中的选项。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击