最近在工作中遇到个bug,QAction使用了toggled信号,本意是定义一系列的action菜单,菜单中有,50%,75%,100%,200%,300%。发现在

void func1(){connect(action, &QAction::toggled, [this, text] {ui->pushButtonZoom->setText(text);});
m_actionGroup->addAction(newAction(menu, "400%"));
//略
}void  func2(){.....for (auto action : m_actionGroup->actions()) {if (action->text() == text) {action->setChecked(true);} else {action->setChecked(false);}}
....
}

发现当action的checkable状态变化时,开关各一次,触发toggled信号,这样就会导致重复操作同一个值 ui->pushButtonZoom->setText(text);重复赋值

查了下文档:
triggered:当用户激活某个动作时,会发出该信号;例如,当用户单击菜单选项、工具栏按钮或按下操作的快捷键组合时,或者当调用trigger()时。值得注意的是,当调用setChecked()或toggle()时,它不会发出。

如果该操作是可检查的,则如果选中该操作,则选中为true;如果未选中该操作则为false。

toggled:每当可检查操作更改其isChecked()状态时,就会发出此信号。这可能是用户交互的结果,也可能是因为调用了setChecked()。当setChecked()更改QAction时,除了toggled()之外,它还会发出changed()。

如果选中该操作,则checked为true;如果未选中该操作则为false。

注意:已检查属性的通知程序信号。另请参见QAaction::activate()、QAction::triggered()和checked。

再参考:博客
基本确定了是setChecked()多次触发toggled信号。而这里只需要命中时,执行一次操作即可,改用triggered()信号。解决bug

记录Qt 信号toggled 和triggered一个bug相关推荐

  1. 记录一个bug 关于 java 解压缩包 写入本地报错 :java.io.FileNotFoundException(系统找不到指定的路径。)

    记录一个bug 关于 java 解压缩包 写入本地报错 :java.io.FileNotFoundException(系统找不到指定的路径.) 第一想法是路径问题: 1.检查文件路径是否正确 2.另外 ...

  2. qt信号发送间隔短而槽耗时多_Qt信号槽问题汇总 - osc_9q1dp3jk的个人空间 - OSCHINA - 中文开源技术交流社区...

    1. 发送一次信号,调用多次槽函数问题 在同一个类中,多次链接QObject::connect(sender, SIGNAL(signalSender(QString, int)), receiver ...

  3. QT信号和槽机制分析

    QObject这个class是QT对象模型的核心,绝大部分的 QT 类都是从这个类继承而来.这个模型的中心特征就是一个叫做信号和槽(signal and slot)的机制来实现对象间的通讯,你可以把一 ...

  4. 从一个 bug 中延伸出 canvas 最大内存限制和浏览器渲染原理

    本文作者:雨过天晴 https://zhuanlan.zhihu.com/p/540761999 前几天一个同事让我帮忙解决一个 bug,这个 bug 困扰他好几天了.这是一个 App 中的 Hybr ...

  5. Qt 信号与槽 讲解与案例

    文章目录 信号与槽 绑定信号与槽 简单案例:按钮的点击 自定义槽函数 自定义信号 信号和槽重载二义性问题 解决方案 案例: 实现两个窗口间的切换 信号与槽 所谓信号槽,实际就是观察者模式(发布-订阅模 ...

  6. 【总结】1519- 从一个 bug 中延伸出 canvas 最大内存限制和浏览器渲染原理

    本文作者:雨过天晴 https://zhuanlan.zhihu.com/p/540761999 前几天一个同事让我帮忙解决一个 bug,这个 bug 困扰他好几天了.这是一个 App 中的 Hybr ...

  7. Qt信号与槽的拓展和案例

    1.标准信号和槽的使用: 2.自定义的信号与槽的使用: 4. 信号槽拓展 4.1 信号槽使用拓展 一个信号可以连接多个槽函数, 发送一个信号有多个处理动作 需要写多个connect连接 信号的接收者可 ...

  8. QT信号与槽——观察者模式——回调函数

    QT信号与槽--观察者模式--回调函数 1.QT信号与槽机制 1.1信号本质 信号是由于用户对窗口或控件进行了某些操作,导致窗口或控件产生了某个特定事件,这时候 Qt 对应的窗口类会发出某个信号.比如 ...

  9. qt 信号多个链接槽_Qt原理窥探信号槽的实现细节

    简介 本文是<Qt进阶之路>系列文章的特别篇,涛哥在这里讨论Qt信号-槽的实现细节. 上次的文章<Qt实用技能4-认清信号槽的本质>中介绍过,信号-槽是一种对象之间的 通信机制 ...

  10. 好难!打个日志还能打出一个bug,语塞...

    某日中午,收到告警,有一笔订单下单失败了.赶紧去Cat看了下错误信息,如下: Web应用调用订单服务的RPC接口报错了,一看错误很自主的认为这是一个序列化的问题.后面排查下来发现压根就不是,这个错误报 ...

最新文章

  1. 8.类定义、属性、初始化和析构
  2. 邓西百度网盘批量转存检测工具 v1.0.0818
  3. 用CSV文件读写数据的两种方式(转)
  4. 2019年开源安全现状调查报告发布
  5. 一个 wince 开发经验的杰出blog
  6. attodiskbenchmarks(磁盘传输速率检测)_硬盘坏了可以修复吗?电脑硬盘检测?
  7. 逐月对比的交叉表处理
  8. 用 Java 开发自己的 Kubernetes 控制器,想试试吗?
  9. 替代top的系统监控工具glances
  10. .Net 中使用 iTextSharp 组件生成 PDF
  11. 有什么软件可以快速测试到苹果,苹果官方App测试工具TestFlight
  12. python画双坐标图_Python画双坐标曲线图
  13. 【文献心得】关于内核在不同芯片平台移植的相关整理
  14. arm920t架构cpu详解
  15. 美化我们的windows xp
  16. bugly怎么读_腾讯Bugly学习了解
  17. 记各种纸尿裤用后感——花王大王MOONY尤妮佳好奇帮宝适等等等
  18. 大数据薪水大概多少_大数据工程师工资待遇一般多少?高吗
  19. Eclipse搭建第一个Spring boot项目
  20. 状态空间方程转换传递函数

热门文章

  1. background复合属性顺序_background(css复合写法)
  2. VB6 Chr码值对应列表大全
  3. 想要自己开发App难吗?教你快速生成App
  4. ESP32增加文件夹及文件
  5. 关于自动化测试的前期发展历史及未来发展趋势
  6. 智能营销增益模型(Uplift Modeling)实践整理
  7. setValuesForKeysWithDictionary崩溃
  8. $.ajax在谷歌浏览器传入中文乱码的情况
  9. Spring Core 之 Validation, Data Binding(校验和数据绑定)
  10. SEO工具脚本,Python百度下拉框关键词采集工具