pyqt5中radio button的状态关联函数
时间: 2024-10-13 20:09:58 浏览: 22
在PyQt5中,Radio Button是一种单选按钮组件,其状态变化通常通过信号(Signal)和槽(Slot)机制来关联。当你设置两个或多个RadioButton在一个组(QButtonGroup)中,并且其中一个被选中时,它的`toggled()`信号会被触发。这个信号会在按钮状态改变时发送。
你可以创建一个槽函数来处理这个信号,这个槽函数通常是自定义的,接收一个布尔值作为参数,表示按钮是否被激活。例如:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QButtonGroup,QRadioButton
from PyQt5.QtCore import pyqtSlot
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.group = QButtonGroup(self)
rb1 = QRadioButton("Option 1", self)
rb2 = QRadioButton("Option 2", self)
rb3 = QRadioButton("Option 3", self)
# 将按钮添加到组中
self.group.addButton(rb1)
self.group.addButton(rb2)
self.group.addButton(rb3)
# 连接信号到槽
self.group.toggled.connect(self.on_button_toggled)
@pyqtSlot(bool) # 使用@装饰器标记这是一个槽函数
def on_button_toggled(self, isChecked):
print(f"Button state changed to {isChecked}. Currently selected: {self.group.checkedId()}")
if __name__ == "__main__":
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
在这个例子中,当任何一个RadioButton的状态改变时,`on_button_toggled(isChecked)`函数会打印出新的选择以及对应的索引。
阅读全文