python中pyqt5复选框怎么用?

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

PyQt5 中的复选框使用 QCheckBox 类来实现,常用于让用户选择一个或多个选项。下面介绍如何创建和使用复选框,并响应其状态变化。

创建基本复选框

你可以通过实例化 QCheckBox 并设置父窗口来添加复选框:

from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout
import sys

app = 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),可以通过以下方法操作:

  • 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)

基本上就这些。复选框在表单、设置界面中很常用,结合布局和信号机制就能灵活控制交互逻辑。