复选框通过QCheckBox实现,可设置状态并响应变化。创建后可用setChecked设置默认状态,通过stateChanged信号连接槽函数处理交互,支持多选项分别响应。

PyQt5 中的复选框使用 QCheckBox 类来实现,常用于让用户选择一个或多个选项。下面介绍如何创建和使用复选框,并响应其状态变化。
创建基本复选框
你可以通过实例化 QCheckBox 并设置父窗口来添加复选框:
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout import sysapp = QApplication(sys.argv) window = QWidget() layout = QVBoxLayout()
创建复选框
checkbox = QCheckBox("同意用户协议")
layout.addWidget(checkbox) window.setLayout(layout) window.show()
sys.exit(app.exec_())
立即学习“Python免费学习笔记(深入)”;
获取和设置复选框状态
复选框有三种状态:未选中(Unchecked)、选中(Checked)和部分选中(Partially Checked),可以通过以下方法操作:
- isChecked():返回布尔值,判断是否被选中
- setChecked(True/False):设置是否选中
- setCheckState(state):设置状态,如 Qt.Checked、Qt.Unchecked、Qt.PartiallyChecked
示例:设置默认选中
checkbox.setChecked(True) # 默认选中
响应复选框状态变化
使用 stateChanged 信号来监听复选框的变化,连接到槽函数处理逻辑:
def on_checkbox_changed(state):
if state == 2: # Qt.Checked 的值是 2
print("已同意协议")
else:
print("未同意协议")
checkbox.stateChanged.connect(on_checkbox_changed)
注意:state 参数是整数,对应关系如下:
- 0:未选中(Qt.Unchecked)
- 1:部分选中(Qt.PartiallyChecked)— 多用于树形控件中的中间状态
- 2:选中(Qt.Checked)
多个复选框的处理
如果有多个复选框,可以分别连接信号,或通过名称判断来源:
def on_check_change(state):
cb = window.sender() # 获取触发信号的复选框
print(f"{cb.text()} 状态改变为: {state}")
cb1 = QCheckBox("选项1")
cb2 = QCheckBox("选项2")
cb1.stateChanged.connect(on_check_change)
cb2.stateChanged.connect(on_check_change)
基本上就这些。复选框在表单、设置界面中很常用,结合布局和信号机制就能灵活控制交互逻辑。











