当前位置: 首页 > news >正文

【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) 时,可以直接获得复选框改变后的选中状态(是或否),适用于需要根据复选框的最新状态执行操作的场景。

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

http://www.lryc.cn/news/340357.html

相关文章:

  • 在线音乐网站的设计与实现
  • 【电路笔记】-数字缓冲器
  • Opencv | 基于ndarray的基本操作
  • 【大语言模型】应用:10分钟实现搜索引擎
  • UT单元测试
  • leetcode-合并两个有序链表
  • 006Node.js cnpm的安装
  • web server apache tomcat11-01-官方文档入门介绍
  • java的总结
  • 解决npm run dev跑项目,发现node版本不匹配,怎么跑起来?【已解决】
  • flood_fill 算法|图形渲染
  • Promise简单概述
  • 【Java集合进阶】数据结构(平衡二又树旋转机制)数据结构(红黑树、红黑规则、添加节点处理方案详解)
  • 富文本在线编辑器 - tinymce
  • 从汇编代码理解数组越界访问漏洞
  • skynet 使用protobuf
  • Vue Router 4 与 Router 3 路由配置与区别
  • python借助elasticsearch实现标签匹配计数
  • Yolo-world+Python-OpenCV之摄像头视频实时目标检测
  • vue-treeselect 的基本使用
  • Vue(二)
  • Python基于深度学习的车辆特征分析系统
  • 推理还原的干货
  • 【Redis 神秘大陆】006 灾备方案
  • 【Java基础】17.异常处理
  • 【python】flask结合SQLAlchemy,在视图函数中实现对数据库的增删改查
  • APIGateway的认证
  • MacOS Github Push项目 精简版步骤
  • Eclipse的基本使用讲解(建项目,建包,建类,写代码(基本语法))新手入门必备
  • 3D模型处理的并行化