如何从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
