【QT】关于qcheckbox常用的三个信号,{sstateChanged(int) clicked() clicked(bool)}达成巧用

在 Qt 中,QCheckBox 是一个提供复选框功能的小部件,允许用户选择和取消选择一个或多个选项。QCheckBox 提供了几种信号来响应用户的交互,其中 stateChanged(int), clicked(), 和 clicked(bool) 是常用的。下面解释这些信号的意义及其用法。

1. stateChanged(int state)

这个信号在复选框的状态改变时发出。状态改变可以是用户交互(如点击复选框改变选中状态),或者是程序通过代码改变复选框状态时触发。

  • 参数

    • int state:表示复选框新的状态。它可以是以下值之一:
      • Qt::Unchecked (0):复选框未被选中。
      • Qt::PartiallyChecked (1):复选框处于部分选中状态(通常用于具有层级结构的复选框中,表示子项目部分被选中)。
      • Qt::Checked (2):复选框被完全选中。
  • 用法示例

    connect(checkBox, &QCheckBox::stateChanged, this, [this](int state) {
        if (state == Qt::Checked) {
            qDebug() << "Checkbox is checked.";
        } else if (state == Qt::Unchecked) {
            qDebug() << "Checkbox is unchecked.";
        }
    });
    

2. clicked()

这个信号在复选框被点击时发出,不论状态如何改变。这个信号不带参数,主要用于简单的点击响应,而不关心具体的状态。

  • 用法示例
    connect(checkBox, &QCheckBox::clicked, this, []() {
        qDebug() << "Checkbox was clicked.";
    });
    

3. clicked(bool checked)

这个信号也是在复选框被点击时发出,但它提供一个布尔参数来指示复选框的新状态。

  • 参数

    • bool checked:如果复选框现在是选中状态,则为 true;如果未选中,则为 false
  • 用法示例

    connect(checkBox, &QCheckBox::clicked, this, [](bool checked) {
        if (checked) {
            qDebug() << "Checkbox is now checked.";
        } else {
            qDebug() << "Checkbox is now unchecked.";
        }
    });
    

总结

  • 使用 stateChanged(int) 时,可以精确到复选框的三种状态变化,适用于需要区分未选中、部分选中和完全选中状态的场景。
  • 使用无参数的 clicked() 时,仅需要知道复选框被点击,而不关心其状态如何变化。
  • 使用 clicked(bool) 时,可以直接获得复选框改变后的选中状态(是或否),适用于需要根据复选框的最新状态执行操作的场景。

这些信号为开发者提供了灵活的方式来处理用户与复选框的交互。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值