C++仿C#实现事件处理

news2024/11/15 4:12:10
测试
#include "beacon/beacon.hpp"
#include <cstdio>
#include <thread>

class mouseEvent : public beacon::args {
public:
    mouseEvent(int x, int y) : x(x), y(y) {}
    int x, y;
};

class object : public beacon::sender {
public:
  
};

class mouseHandler : public beacon::multi_handler {
public:

};

class Button {
public:
    void on_event(beacon::sender* sender, beacon::args* args) {
        auto event = args->to<mouseEvent>();
        printf("Mouse event at %d, %d\n", event.x, event.y);
    }
};




int main(int argc, char** argv) {
    mouseEvent event(10, 20);

    object sender;
    Button button;

    mouseHandler handler;
    handler.addListener<mouseEvent>(beacon::callback::bind(&Button::on_event, &button));
    handler.raise(&sender, &event);
    
    beacon::interval inter;
    inter.set(1000, [](const char* msg){ puts(msg); }, "Hello, World!");
    std::this_thread::sleep_for(std::chrono::milliseconds(10000));
    
    return 0;
}

g++ example.cpp -o test.exe

输出
Mouse event at 10, 20
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
编译错误

参考 

GitHub - ImanolFotia/beacon: Beacon is a multiparadigm C++ event management library with focus on fast and simple integration

C++ 仿QT信号槽二_c++模仿qt里面的信号与槽,做一个消息不同类消息传递-CSDN博客 

自定义窗口事件循环系统-CSDN博客 


创作不易,小小的支持一下吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6大企业必备的公司常用的加密软件推荐|2024公司常用加密软件推荐!

2024年上半年&#xff0c;企业对于数据加密的需求日益增长&#xff0c;以确保数据在存储和传输过程中的安全性。以下是六款企业常用的加密软件推荐&#xff0c;它们各具特色&#xff0c;能够满足不同企业的加密需求&#xff1a; 1.NordLocker&#xff1a; 特点&#xff1a;它是…

【Linux系列】telnet使用入门

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

什么是视频比特率?与视频时长是什么关系

​ ‌比特率是指单位时间内传输或处理的比特的数量&#xff0c;单位为‌bps(‌bit per second)。‌ 比特率经常用于描述在电信和计算领域中数据传输的速度&#xff0c;也可以作为衡量音频和视频文件数据率的指标。比特率越高&#xff0c;传送的数据越大&#xff0c;音频或视频…

Ubuntu安装Anaconda3

本文详细阐述了在 Ubuntu 系统中安装 Anaconda3 的完整流程。包括 Anaconda3 安装包的获取途径&#xff0c;具体安装过程中的每一个步骤及注意事项&#xff0c;还有安装后的环境变量设置和安装成功的验证方法。旨在为 Ubuntu 用户提供清晰、易懂且准确的 Anaconda3 安装指南&am…

Windows Microsoft Edge 浏览器 配置【密码】

在浏览 Web 时&#xff0c;Microsoft Edge 可以轻松保存密码。 在桌面或移动设备上的 Edge 浏览器中输入新密码时&#xff0c;Microsoft Edge 会询问你是否要记住用户名和密码。 下次访问该网站时&#xff0c;浏览器将完成帐户信息的填写。 如果使用 Microsoft 帐户登录到 Edg…

重塑业务生态,Vatee万腾平台:引领行业变革的新引擎

在数字经济浪潮汹涌的今天&#xff0c;传统行业的边界正被不断模糊与重塑&#xff0c;新兴技术如云计算、大数据、人工智能等正以前所未有的速度改变着商业世界的面貌。在这一背景下&#xff0c;Vatee万腾平台应运而生&#xff0c;以其独特的创新模式和强大的技术实力&#xff…

i.MX6裸机开发(1):环境搭建

1. 熟悉sdk SDK&#xff08;Software Development Kit&#xff09;是NXP针对其官方评估 版的软件开发包&#xff0c;可以在NXP的官网下载得到。SDK中包含了 各种程序范例&#xff0c;我们心心念念的固件库也包含在它里边。 NXP官网链接&#xff1a;https://www.nxp.com 未登录…

Camera基础知识系列(2)——对焦和变焦

目录 一. 引言 二. 对焦 定义&#xff1a; 原理 三. 变焦 定义 用途 四. 总结 一. 引言 这一节简单聊一下对焦和变焦&#xff0c;这两个是摄影种出现的高频词&#xff0c;但这里把它们放一起讲&#xff0c;主要还是因为它们在字面上就一字之差&#xff0c;初次接触…

XSS DOM破坏实战案例

目录 案例一 思考 源码分析 查找问题 实现 案例二 查看源码 问题查找 实现 实验环境&#xff1a;DOM clobbering | Web Security Academy (portswigger.net) 案例一 里面是一篇篇的博客&#xff0c;点击进去里面是一些评论 思考 尝试一些常规的xss 没什么效果... 他将…

Java、python、php版的企业单位考勤打卡管理系统的设计与实现(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

无人机之螺旋桨的安装与维护

一、安装&#xff1a;正确安装桨叶至关重要。请确保顺时针旋转的桨叶安装在对应的电机上&#xff0c;并使逆时针旋转的桨叶安装在相应的电机上。否则&#xff0c;无人机可能无法正常飞行或失去控制。 二、维护&#xff1a;为了确保无人机的安全及长久使用&#xff0c;请定期检…

pytorch-AutoEncoders

目录 1. 监督学习&无监督学习1.1 监督学习1.2 无监督学习1.3 为什么需要无监督学习 2. AutoEncoders3. Auto Encoders loss function4. PCA VS Auto Encoders5. Auto Encoders的变种5.1 Denoising Auto Encoders5.2 Dropout AutoEncoders5.3 Adversarial AutoEncoders5.4 V…

使用 Python构建 Windows 进程管理器应用程序

在这篇博客中&#xff0c;我们将探讨如何使用 wxPython 构建一个简单的 Windows 进程管理器应用程序。这个应用程序允许用户列出当前系统上的所有进程&#xff0c;选择和终止进程&#xff0c;并将特定进程保存到文件中以供将来加载。 C:\pythoncode\new\manageprocess.py 全部…

打击盗版,禁止盗版软件联网!电脑下载了不安全的“软件”,怎么禁止它联网?这三种方法最常用!

数字化时代&#xff0c;盗版软件的泛滥不仅侵犯了软件开发者的知识产权&#xff0c;还严重威胁到用户的网络安全和数据安全。当不慎在电脑上下载了不安全的盗版软件时&#xff0c;如何有效地禁止其联网&#xff0c;成为保护个人或企业信息、系统安全的重要一环。 本文将为您介…

Qt框架学习04——元对象系统

元对象系统&#xff09; 1. RTTI 概念2. 元对象系统2.1 元对象的概念2. 2 使用元对象系统获取类信息 总结&#xff1a; 1. RTTI 概念 Runtime Type Identification运行时类型识别typeid() 2. 元对象系统 2.1 元对象的概念 用来记录类的原始信息的对象称之为元对象用于继承于…

LLMs之Leaderboard:Gorilla的简介、安装和使用方法、案例应用之详细攻略

LLMs之Leaderboard&#xff1a;Gorilla的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2023 年5月 24 日&#xff0c;UC伯克利等发布Gorilla。该工作针对LLM有效调用API工具的问题&#xff0c;提出了一种检索式微调语言模型的新方法Gorilla&#xff0c;并构建了相…

WPF篇(15)-Expander折叠控件+MediaElement媒体播放器

Expander折叠控件 Expander也是一个内容控件&#xff0c;它有一个标题属性和内容属性。 Expander类的定义 public class Expander : HeaderedContentControl {public static readonly DependencyProperty ExpandDirectionProperty;public static readonly DependencyPropert…

3D DRAM 集成 AI 处理:一项可能取代现有 HBM 的新技术

NEO 半导体公司&#xff0c;一家专注于 3D DRAM 和 3D NAND 内存的公司&#xff0c;最近推出了其最新的 3D X-AI 芯片技术&#xff0c;这项技术有可能取代目前在 AI GPU 加速器中使用的高带宽内存 (HBM)。 据报道&#xff0c;这款 3D DRAM 集成了 AI 处理能力&#xff0c;能够在…

AI预测福彩3D采取888=3策略+和值012路或胆码测试8月17日新模型预测第59弹

经过近60期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;58期一共只错了5次&#xff0c;这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xff0c;大…

【SQL】科目种类

目录 题目 分析 代码 题目 表: Teacher ------------------- | Column Name | Type | ------------------- | teacher_id | int | | subject_id | int | | dept_id | int | ------------------- 在 SQL 中&#xff0c;(subject_id, dept_id) 是该表的主键。 该表…