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

Qt信号槽在使用中避免循环绑定

假设有两个Object, object1和object2

object1的信号绑定object2的槽函数
object2的信号绑定object1的槽函数
在object2的槽函数触发时,发送object2的信号,object1的槽函数会被触发,在object1的槽函数中,发送object1的信号,又会导致object2的槽函数触发,就会导致死循环。

object1.h

#ifndef OBJECT1_H #define OBJECT1_H #include <QObject> class Object1 : public QObject { Q_OBJECT public: Object1(); signals: void object1Signal(); public slots: void object1Slot(); }; #endif // OBJECT1_H

object1.cpp

#include "object1.h" #include <QDebug> Object1::Object1() { } void Object1::object1Slot() { qDebug() << __FUNCTION__; emit object1Signal(); }

object2.h

#ifndef OBJECT2_H #define OBJECT2_H #include <QObject> class Object2 : public QObject { Q_OBJECT public: Object2(); signals: void object2Signal(); public slots: void object2Slot(); }; #endif // OBJECT2_H

object2.cpp

#include "object2.h" #include <QDebug> Object2::Object2() { } void Object2::object2Slot() { qDebug() << __FUNCTION__; emit object2Signal(); }

main.cpp

#include "widget.h" #include <QApplication> #include <QObject> #include "object1.h" #include "object2.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); Object1 obj1; Object2 obj2; QObject::connect(&obj1, SIGNAL(object1Signal()), &obj2, SLOT(object2Slot())); QObject::connect(&obj2, SIGNAL(object2Signal()), &obj1, SLOT(object1Slot())); emit obj1.object1Signal(); return a.exec(); }
http://www.jsqmd.com/news/1139833/

相关文章:

  • PyTorch 2.0 CIFAR-10 模型优化:3种学习率策略对比,测试集准确率提升至69.78%
  • Python爬虫经典案例第83篇:在线博客平台爬取:掘金数据采集实战
  • CIC研判:数字化越转越重,病根还是在低代码工作流
  • BLIP BLIP-2 超详细入门解析
  • 电商罗盘视频怎么下载?罗盘视频跳转、无水印下载和内容库教程
  • PyTorch nn.LSTM 参数详解与避坑指南:batch_first 等5个关键参数实战解析
  • 如何3秒完成网页图片格式转换:Save Image as Type浏览器扩展完整指南
  • Opus 4.8、GPT-5.5、Gemini 3.1 Pro 测了同一套任务,输赢比你想的复杂
  • 非遗网站平台的设计与实现毕业设计任务书
  • 谷歌 Find Hub 双版本迭代优化软硬件生态
  • TensorFlow 2.10 GPU Windows 终极配置:CUDA 11.2 + cuDNN 8.1 避坑 3 要点
  • 支撑 2500 亿行对话数据:某头部大模型公司如何用 TiDB 托住高频 AI 交互场景
  • 3个关键步骤彻底解决Intel Mac过热问题:Turbo Boost Switcher终极指南
  • MDX-M3-Viewer:游戏模型格式的WebGL解析与可视化引擎
  • 重构石化智能底座——乾元通多链路技术赋能石化生产与数据融合
  • 旧地面翻新
  • Transformer 架构 2023:从 GPT-3 到 Stable Diffusion 的 5 大 AIGC 基石模型对比
  • 运算放大器 PCB 布局 5 大误区解析:从原理图正确到板级失效的根因
  • SSD能效比如何决定大模型本地推理流畅度
  • IDM激活脚本终极指南:5种方法实现永久免费下载管理
  • 计算机毕业设计之基于YOLO11的图像识别的交通信号灯识别
  • 赛博朋克边缘行者2:AI图像生成与本地部署技术实践指南
  • 城市地铁屏蔽门专用安全光幕选型指南
  • 深度解析msvcp140.dll运行原理,配套msvcp140.dll丢失的解决方法分层修复方案
  • Windows下pyenv-win安全审计与防护实战指南
  • 影刀RPA新手教程:定时任务常见问题完全指南——为什么定时任务没有跑起来
  • 月入五万的蓝海赛道,两年做到头部
  • 告别“租房”,置办“家产”:从SEO到GEO,AI时代品牌数字资产的生死重构
  • MDX与M3模型解析技术探索:从二进制数据到WebGL渲染的深度解密
  • LabelPlus漫画翻译工具终极指南:从零开始的高效汉化解决方案