PyQt5 Tutorials

PyQt5 单选按钮:完整指南

Spread the love

本教程提供了使用PyQt5的`QRadioButton`小部件的全面指南。我们将介绍基础知识,探讨`setChecked`方法,并深入研究创建互斥选择的单选按钮组。让我们开始吧!

目录:

  1. `QRadioButton`基础示例
  2. `setChecked`方法
  3. 创建单选按钮组
  4. 处理用户选择

1. `QRadioButton`基础示例

`QRadioButton`允许用户从一组选项中选择一个。这是一个简单的示例:


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 QRadioButton 示例")

layout = QVBoxLayout()
label = QLabel("选择一个选项:")
layout.addWidget(label)

radio1 = QRadioButton("选项 1")
radio2 = QRadioButton("选项 2")
radio3 = QRadioButton("选项 3")

layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

这创建了三个独立的单选按钮。要检查哪个被选中,请使用`isChecked()`方法。

2. `setChecked`方法

使用`setChecked(True)`以编程方式选择单选按钮,或使用`setChecked(False)`取消选择。


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QPushButton

# ... (之前的代码) ...

button = QPushButton("选择选项 2")
button.clicked.connect(lambda: radio2.setChecked(True))

layout.addWidget(button)

# ... (其余代码) ...

这添加了一个按钮,单击时会选择“选项 2”。

3. 创建单选按钮组

对于互斥选择,使用`QButtonGroup`。这确保一次只能选择组中的一个按钮。


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QButtonGroup

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 QRadioButton 组示例")

layout = QVBoxLayout()
label = QLabel("选择一个选项:")
layout.addWidget(label)

button_group = QButtonGroup()
radio1 = QRadioButton("选项 1")
radio2 = QRadioButton("选项 2")
radio3 = QRadioButton("选项 3")

button_group.addButton(radio1, 1)
button_group.addButton(radio2, 2)
button_group.addButton(radio3, 3)

layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

4. 处理用户选择

使用`buttonClicked`信号有效地处理用户选择:


button_group.buttonClicked.connect(lambda button: print(f"选择的选项:{button_group.id(button)}"))

这将打印所选按钮的ID(添加到组时分配)。用您想要的动作替换`print`语句。

这种改进的方法避免了手动检查每个按钮的状态,并为在PyQt5应用程序中管理单选按钮选择提供了更强大和更组织化的解决方案。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注