如何从pyqt中的组框中获取选中的单选按钮
作者:野牛程序员:2023-08-08 09:32:02python阅读 2916
在 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

