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` 来管理一组按钮,实现方便的按钮交互和状态管理。