怎么书写python代码使得一个groupbox内的radiobutton变化后,它所绑定的其他的groupbox中的radiobutton按钮跟着变
时间: 2023-03-29 08:01:43 浏览: 177
您可以使用 PyQt5 中的 QButtonGroup 类来实现这个功能。首先,您需要创建一个 QButtonGroup 对象,并将所有相关的 radiobutton 添加到该组中。然后,您可以使用 QButtonGroup 的 buttonClicked 信号来捕获 radiobutton 的单击事件,并在该信号的槽函数中更新其他相关 radiobutton 的状态。
以下是一个示例代码:
```
from PyQt5.QtWidgets import QApplication, QWidget, QGroupBox, QRadioButton, QVBoxLayout, QHBoxLayout, QButtonGroup
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
groupbox1 = QGroupBox('Group 1')
hbox1 = QHBoxLayout()
self.rb1_1 = QRadioButton('Option 1')
self.rb1_2 = QRadioButton('Option 2')
hbox1.addWidget(self.rb1_1)
hbox1.addWidget(self.rb1_2)
groupbox1.setLayout(hbox1)
vbox.addWidget(groupbox1)
groupbox2 = QGroupBox('Group 2')
hbox2 = QHBoxLayout()
self.rb2_1 = QRadioButton('Option 1')
self.rb2_2 = QRadioButton('Option 2')
hbox2.addWidget(self.rb2_1)
hbox2.addWidget(self.rb2_2)
groupbox2.setLayout(hbox2)
vbox.addWidget(groupbox2)
self.setLayout(vbox)
# 创建 QButtonGroup 对象,并将所有 radiobutton 添加到该组中
self.button_group = QButtonGroup()
self.button_group.addButton(self.rb1_1)
self.button_group.addButton(self.rb1_2)
self.button_group.addButton(self.rb2_1)
self.button_group.addButton(self.rb2_2)
# 连接 buttonClicked 信号到槽函数
self.button_group.buttonClicked.connect(self.on_button_clicked)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Example')
self.show()
def on_button_clicked(self, button):
# 更新其他相关 radiobutton 的状态
if button == self.rb1_1:
self.rb2_1.setChecked(True)
elif button == self.rb1_2:
self.rb2_2.setChecked(True)
elif button == self.rb2_1:
self.rb1_1.setChecked(True)
elif button == self.rb2_2:
self.rb1_2.setChecked(True)
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
```
当您单击一个 radiobutton 时,与之相关的 radiobutton 也会相应地更新其状态。
阅读全文