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

Qt QCheckBox 使用

1.开发背景

        Qt QCheckBox 是勾选组件,具体使用方法可以参考 Qt 官方文档,这里只是记录使用过程中常用的方法示例和遇到的一些问题。

2.开发需求

        QCheckBox 使用和踩坑

3.开发环境

        Window10 + Qt5.12.2 + QtCreator4.8.2

4.功能简介

4.1 简单接口

        QCheckBox 继承了 QAbstractButton、QWidget、QObject 和 QPaintDevice,父对象的接口都能用,另外独有接口 setCheckState 、checkState 等

4.2 信号接口

        除了继承的信号,主要还是使用信号 stateChanged 

5.踩坑现场

5.1 信号 stateChanged  中使用  setChecked 不会立刻刷新状态

    connect(ui->checkBox_RxSaveFile, &QCheckBox::stateChanged, this, [this](int state){if (state == Qt::Unchecked){m_p->isRxSaveFile = false;m_p->rxSavePath.clear();}else if (state == Qt::Checked){/* 获取当前时间并格式化为字符串(如 "2024-01-01_12-00-00")*/m_p->isRxSaveFile = true;QString timestamp = QDateTime::currentDateTime().toString("yyyy-MM-dd_HH-mm-ss");QString defaultFileName = "./" + timestamp + ".txt";QString fileName = QFileDialog::getSaveFileName(this, "保存文件",defaultFileName, "文本文件 (*.txt);;所有文件 (*)");if (fileName.isEmpty()){m_p->isRxSaveFile = false;ui->checkBox_RxSaveFile->setChecked(false);ui->checkBox_RxSaveFile->setCheckState(Qt::Unchecked);  // 需要单独设置状态}else{m_p->rxSavePath = fileName;}}});

        需要使用 setCheckState 设置当前的状态,不然第二次点击不会触发信号

5.2 待续~

相关文章:

  • 多层嵌套子查询
  • 【Linux】线程的同步与互斥
  • unity通过transform找子物体只能找子级
  • TGRS | FSVLM: 用于遥感农田分割的视觉语言模型
  • 2025年PMP 学习七 -第5章 项目范围管理 (5.4,5.5,5.6 )
  • 1.短信登录
  • 【速通RAG实战:生成】8.智能生成引擎:大模型与Prompt工程黄金指南
  • 【Docker系列】docker inspect查看容器部署位置
  • (剪映)字幕实现卡拉OK效果
  • Java中Comparator排序原理详解
  • https,http1,http2,http3的一些知识
  • SSH终端登录与网络共享
  • vue配置代理解决前端跨域的问题
  • SSH免密登录
  • 【部署满血Deepseek-R1/V3】大型语言模型部署实战:多机多卡DeepSeek-R1配置指南
  • spring boot lunar 农历的三方库引用,获取日期的农历值
  • Linxu实验五——NFS服务器
  • 再度深入理解PLC的输入输出接线
  • 计算机网络:什么是Mesh组网以及都有哪些设备支持Mesh组网?
  • 网页五子棋对战测试报告
  • 游戏论|暴君无道,吊民伐罪——《苏丹的游戏》中的政治
  • 14岁女生瞒报年龄文身后洗不掉,法院判店铺承担六成责任
  • 昆廷·斯金纳:作为“独立自主”的自由
  • 国铁集团:铁路五一假期运输收官,多项运输指标创历史新高
  • AMD:预计美国芯片出口管制将对全年营收造成15亿美元损失
  • 指挥家高健:东方市民音乐会“高贵不贵”,我愿意常来