1. 定义回调接口类:

class UIcallBack
{
public:
virtual void onAppActivated() = 0;
virtual void onShowMore() = 0;
};

2. 定义一个类 继承 回调接口类,并包含你要监听的类
class AppManager : public UIcallBack
{
public:
AppManager();

UIManager uiManager;
……
uiManager.setCallBack(this);

void AppManager::onAppActivated()
{

}

void AppManager::onShowMore()
{
_D("callback onshowMore\n");
}

3. 要监听的类实现
class UIManager
{
public:
UIManager();
~UIManager();

void setCallBack(UIcallBack *pcallBack)
{
m_pcallBack = pcallBack;
}

UIcallBack *m_pcallBack;
};

在 UIManager里调用
m_pcallBack->onShowMore();

则在AppManager类里就能响应到onShowMore()这个消息

------------

2017-10-02 应一位回复此博客的朋友要求,总结另一篇有关QT信号与槽机制的简单实现原理,可参考另一篇博客:

http://blog.csdn.net/liukang325/article/details/78151601
---------------------
作者:阳光柠檬_
来源:CSDN
原文:https://blog.csdn.net/liukang325/article/details/45742675
版权声明:本文为博主原创文章,转载请附上博文链接!

回调函数实现类似QT中信号机制(最简单)的更多相关文章

  1. 回调函数实现类似QT中信号机制

    1. 定义回调接口类: class UIcallBack { public: virtual void onAppActivated() = 0; virtual void onShowMore()  ...

  2. 自己用纯C++实现简单的QT中信号与槽机制

    前天在我很久以前的一篇博文 (http://blog.csdn.net/liukang325/article/details/45742675) 中有人回复说看到我的博文很激动,希望我详细介绍一下信号 ...

  3. Linux内核中的信号机制--一个简单的例子【转】

    本文转载自:http://blog.csdn.net/ce123_zhouwei/article/details/8562958 Linux内核中的信号机制--一个简单的例子 Author:ce123 ...

  4. QT_5_ Qt中信号和槽 + 自定义信号和槽 + lambda 表达式

    1.Qt中信号和槽 1.1 需求:点击按钮关闭窗口 1.2 利用connect进行链接 1.3 参数1 信号发送者(指针) 参数2 发送的信号(信号地址) 参数3 信号的接受者(指针) 参数4 处理槽 ...

  5. qt中信号与槽机制

    一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不 ...

  6. 使用 C++11 编写类似 QT 的信号槽——上篇

    了解 QT 的应该知道,QT 有一个信号槽 Singla-Slot 这样的东西.信号槽是 QT 的核心机制,用来替代函数指针,将不相关的对象绑定在一起,实现对象间的通信. 考虑为 Simple2D 添 ...

  7. 使用 C++11 编写类似 QT 的信号槽——下篇

    要实现 Signal-Slot,Signal 类中应该拥有一个保存 std::function 的数组: template<class FuncType> class Signal { p ...

  8. 【Pthon入门学习】利用slice实现str的strip函数,类似C#中的string.trim

    1.先了解下切片的知识点 切片是str, list,tuple中常用的取部分元素的操作. 例如: L =['北京', '上海', '天津', '深圳', '石家庄'] print(L[0:2]) # ...

  9. PCL中将回调函数封装到类中

    这是类中的声明 private://点云回调函数 NuClearTask_MyPointCloudHandle //点云选择 static void ps_callback(const pcl::vi ...

随机推荐

  1. P2871 [USACO07DEC]手链Charm Bracelet

    题目描述 Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like t ...

  2. Android FileProvider相关 Failed to find configured root that contains

    问题: 使用FileProvider构造SD卡中文件uri时异常 java.lang.IllegalArgumentException: Failed to find configured root ...

  3. Json——转义符

    C#后台直接输出Json字符串需要反斜杠“\” context.Response.Write("[{\"Name\": \"wqx\", \" ...

  4. 如何设置“用eclipse开发时自动在顶端产生import”?

    eclipse新版本中的默认设置可能导致自动在生成import时是在代码中,而大多数时间我们需要自动生成import在代码顶端,按照如下设置即可纠正

  5. python 字典 get方法

    在做项目的过程中,遇到了一个问题,数据保存到字典中,后来发现数据不对,排查了字典的构建过程,是OK的,后来怀疑是别的部分共用了这一个字典,排查代码,发现这里应该是有问题的. score = None ...

  6. SpringMVC(四)@RequestParam

    使用@RequestParam可以将URL中的请求参数,绑定到方法的入参上,并通过@RequestParam的3个参数进行配置 Modifier and Type Optional Element D ...

  7. C#斐波那契数列方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. transition-分栏按钮动画

      => css: .cateBtn{ position: relative; background: #fff; border: 1px solid #ddd; border-radius: ...

  9. Java基础学习总结(69)——匿名内部类与Lambda表达式

    前言 Java Labmda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法.实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedy ...

  10. (39.4) Spring Boot Shiro权限管理【从零开始学Spring Boot】

    在读此文章之前您还可能需要先了解: (39.1) Spring Boot Shiro权限管理[从零开始学Spring Boot] http://412887952-qq-com.iteye.com/b ...