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

纯C++信号槽使用Demo (sigslot 库使用)

sigslot 库与QT的信号槽一样,通过发送信号,触发槽函数,信号槽不是QT的专利,早在2002年国外的一小哥用C++写了sigslot 库,简单易用;
该库的官网(喜欢阅读的小伙伴可以仔细研究):http://sigslot.sourceforge.net

sigslot 库就是两个文件,下面这里下载

通过百度网盘分享的文件:sigslot 库
链接:https://pan.baidu.com/s/12N8_ziZfN8_FME4W8akueA?pwd=arg0 
提取码:arg0 

下面是测试代码样例

/*
sigslot 库的使用,该库是纯C++实现信号与槽的操作
把sigslot 库的两个文件放在代码同级目录即可

*/

#include <iostream>
#include "sigslot.h"

using namespace sigslot;//sigslot库空间引入进来


//自定义的类,里面有两个信号
class Windows {
public:
	signal0<> Sig_LButtonClicked;//信号
	signal1 <int> sig_paint;


};

//自定义的类,里面有槽函数,在定义的时候需注意继承public has_slots<>
class WindowsHandler :public has_slots<>
{
public:
	void onLButtonClicked()
	{
		printf("L Button clicked\n");
	}

	void onPaint(int value)
	{
		printf("value = %d\n", value);
	}
};


int main()
{
	Windows w;
	WindowsHandler handler;
	w.Sig_LButtonClicked.connect(&handler, &WindowsHandler::onLButtonClicked);//创建信号槽
	w.sig_paint.connect(&handler, &WindowsHandler::onPaint);//创建信号槽

	//发送信号
	w.Sig_LButtonClicked();
	w.sig_paint(100);


	return 0;
}

在这里插入图片描述


http://www.kler.cn/a/385419.html

相关文章:

  • LeetCode 热题 100之 堆
  • 『大模型笔记』IBM技术团队:什么是智能体型RAG!
  • JavaScript 实现文本转语音功能
  • 【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
  • 设计模式(主要的五种)
  • ZABBIX API获取监控服务器OS层信息
  • PyQt入门指南四十六 性能优化策略
  • AntPathMatcher 技术文档
  • Affinity part 2 - 系统拓扑结构和控制亲和性
  • 气膜场馆:推动体育文化旅游创新发展的关键力量—轻空间
  • 支付宝与华为终端联手,移动支付即将进入“碰时代”
  • 掌握springboot过滤器,拦截器 ,aop
  • 宠物空气净化器哪家好?希喂、安德迈、霍尼韦尔除毛能力测评
  • 量化交易系统开发-实时行情自动化交易-数据的种类
  • 深入理解Java中的接口
  • C#中的可空类型是什么?
  • 渗透测试---Linux基础(二)(完结版)
  • 【芯智雲城】RICHTEK立锜科技23V降压转换器
  • QinQ VLAN技术
  • 速盾:怎么使用cdn加速?
  • qt for android 控制系统的不同音量
  • Python 微服务架构
  • 【git】使用记录
  • git提交顺序为什么是:add,conmmit,pull,push
  • 02_ElementUI
  • PDF模板制作与填充(Java)