C++ 实现QT信号槽

发布时间:2026/11/2 6:10:08

C++ 实现QT信号槽 https://github.com/libsigcplusplus/libsigcplusplus#include iostream /* ////在sigslot.h的420,将 //typedef sender_set::const_iterator const_iterator; ////改为 //typedef typename sender_set::const_iterator const_iterator; #include sigslot.h using namespace sigslot; //必须加上sigslot的命名空间 //在用vs调试时还需要将sigslot.h中很多的自定义模板结构类型前加typename const int TTRUE 1; const int TFALSE 0; class Switch { public: signal0 Clicked; //这里的信号是不带参数的signaln表示带几个参数 }; class Light : public has_slots { public: Light(bool state) { b_state state; Displaystate(); } void ToggleState() { b_state !b_state; Displaystate(); } //作为消息的响应 void TurnOn() { b_state TTRUE; Displaystate(); } void TurnOff() { b_state TFALSE; Displaystate(); } void Displaystate() { std::cout The state is b_state std::endl; } private: bool b_state; }; void main() { Switch sw1, sw2, all_on, all_off; Light lp1(TTRUE), lp2(TFALSE); sw1.Clicked.connect(lp1, Light::ToggleState); //绑定 sw2.Clicked.connect(lp2, Light::ToggleState); all_on.Clicked.connect(lp1, Light::TurnOn); all_on.Clicked.connect(lp2, Light::TurnOn); all_off.Clicked.connect(lp1, Light::TurnOff); all_off.Clicked.connect(lp2, Light::TurnOff); sw1.Clicked(); sw2.Clicked(); all_on.Clicked(); all_off.Clicked(); sw1.Clicked.disconnect(lp1); sw2.Clicked.disconnect(lp2); all_on.Clicked.disconnect(lp1); all_on.Clicked.disconnect(lp2); all_off.Clicked.disconnect(lp1); all_off.Clicked.disconnect(lp2); } */ #include sigc/sigc.h class AlienDetector { public: void run() { signal_detected.emit(test); } sigc::signalvoid(std::string) signal_detected; // changed }; void warn_people(std::string where) { std::cout There are aliens in where ! std::endl; } int main_callback() { AlienDetector mydetector; auto target mydetector.signal_detected.connect(sigc::ptr_fun(warn_people)); // return sigc::connection mydetector.run(); target.disconnect(); return 0; }创作不易小小的支持一下吧
延伸阅读

更多相关文章

2026/11/2 6:10:08

C++旋转点坐标计算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:10:08

C++自定义智能指针

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:10:08

C/C++自定义std::format格式化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 7:25:15

6S大气校正手册精读:辐射传输模型原理与工程实践指南

简介:这份PDF文档是6S模型(第二代太阳光谱卫星信号模拟)的用户操作说明,面向从事定量遥感、大气校正研究的科研人员与工程技术人员,帮助其理解大气传输过程中吸收与散射效应对卫星观测信号的影响。文档系统阐述了大气吸…

2026/11/2 7:25:15

SSH客户端安装配置全攻略:从下载甄别到安全使用

SSH 客户端这东西,但凡摸过几天服务器的人都不陌生。早些年大家伙儿手里攥着的工具五花八门,有人用命令行原生的 ssh,有人用带图形界面的终端模拟器,还有一批人专门找那种"一站式"的 Windows 桌面客户端,图的…

2026/11/2 7:25:15

6S大气传输模型:从吸收散射到遥感校正的工程实践

简介:这份PDF文档是6S大气辐射传输模型的官方用户指南(Version 2),面向从事定量遥感、大气校正与卫星数据处理的科研人员和工程师,用于理解并模拟太阳—地表—传感器路径上的大气影响。文档系统讲解大气吸收与散射效应…

2026/11/2 7:25:15

使用NVIDIA Isaac Sim 4.5进行四足机器人强化学习训练

1. 项目概述四足机器人强化学习训练是当前机器人领域的热门研究方向,而NVIDIA Isaac Sim 4.5作为强大的机器人仿真平台,为这一研究提供了理想的开发环境。本教程将详细讲解如何利用Isaac Sim 4.5完成四足机器人从零开始的强化学习训练全流程。在实际机器…

2026/11/2 7:25:15

Prometheus在Ubuntu 22.04上的部署与优化实践

1. 运维监控系统选型与Prometheus核心优势在当今复杂的IT基础设施环境中,监控系统已经成为运维工作的神经中枢。作为一名有十年运维经验的工程师,我见证过从Nagios到Zabbix再到Prometheus的技术演进历程。为什么Prometheus能在短短几年内成为云原生时代的…

2026/11/2 7:20:15

金融科技测试实战:区块链监管系统测试框架构建

1. 项目背景与核心挑战作为一名在金融科技领域深耕多年的软件测试工程师,我最近参与了一个极具挑战性的项目——为虚拟经济监管系统构建数字化测试框架。这个项目让我深刻体会到,在区块链和数字资产快速发展的今天,传统的测试方法已经无法满足…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业级SPI隔离设计:硬件抗扰与信号完整性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

PLFM_RADAR:主动探测数据通道,构建低误报的数据感知系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业SPI隔离设计:MAX14431与STM32F746硬件抗干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑