QButtonGroup的创建与使用
在 PyQt5 中,`QButtonGroup` 是一个用于管理一组按钮的容器类。它可以将多个按钮分组,以便对它们进行统一的操作和管理。以下是关于 `QButtonGroup` 的创建与使用方法:
一、创建 `QButtonGroup`
1. 导入必要的模块:
python
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup
2. 创建应用程序和窗口:
python
app = QApplication([]) widget = QWidget()
3. 创建 `QButtonGroup` 对象:
python
button_group = QButtonGroup()
二、向 `QButtonGroup` 添加按钮
1. 创建按钮:
python
radio_button1 = QRadioButton("选项 1", widget) radio_button2 = QRadioButton("选项 2", widget)
2. 将按钮添加到 `QButtonGroup`:
python
button_group.addButton(radio_button1) button_group.addButton(radio_button2)
三、设置按钮的 ID
可以为每个按钮设置一个唯一的 ID,方便后续识别。
python
button_group.setId(radio_button1, 1) button_group.setId(radio_button2, 2)
四、获取选中的按钮
1. 获取选中按钮的 ID:
python
checked_button_id = button_group.checkedId()
2. 根据 ID 获取按钮对象:
python
if checked_button_id!= -1: checked_button = button_group.button(checked_button_id) print(f"选中的按钮是:{checked_button.text()}")
五、连接信号
`QButtonGroup` 可以发射信号,例如当按钮状态改变时。
python
button_group.buttonClicked.connect(lambda button: print(f"点击的按钮是:{button.text()}"))
六、完整示例代码
python
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup app = QApplication([]) widget = QWidget() button_group = QButtonGroup() radio_button1 = QRadioButton("选项 1", widget) radio_button2 = QRadioButton("选项 2", widget) button_group.addButton(radio_button1) button_group.addButton(radio_button2) button_group.setId(radio_button1, 1) button_group.setId(radio_button2, 2) def handle_button_click(button): print(f"点击的按钮是:{button.text()}") button_group.buttonClicked.connect(handle_button_click) widget.show() app.exec_()
通过以上步骤,你可以在 PyQt5 中创建和使用 `QButtonGroup` 来管理一组按钮,实现方便的按钮交互和状态管理。