复选框通过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_())
复选框有三种状态:未选中(Unchecked)、选中(Checked)和部分选中(Partially Checked),可以通过以下方法操作:
示例:设置默认选中
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 参数是整数,对应关系如下:
如果有多个复选框,可以分别连接信号,或通过名称判断来源:
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)
基本上就这些。复选框在表单、设置界面中很常用,结合布局和信号机制就能灵活控制交互逻辑。