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

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回调函数实现类似QT中信号机制相关的知识,希望对你有一定的参考价值。

 

1. 定义回调接口类:

 

[cpp] view plain copy
 
 技术分享技术分享
  1. class UIcallBack  
  2. {  
  3. public:  
  4.     virtual void onAppActivated() = 0;  
  5.     virtual void onShowMore() = 0;  
  6. };  


2. 定义一个类 继承 回调接口类,并包含你要监听的类

 

 

[cpp] view plain copy
 
 技术分享技术分享
  1. class AppManager : public UIcallBack  
  2. {  
  3. public:  
  4.     AppManager();  
  5.   
  6.     UIManager uiManager;  
  7. ……  

 

 

[cpp] view plain copy
 
 技术分享技术分享
  1. uiManager.setCallBack(this);  



 

[cpp] view plain copy
 
 技术分享技术分享
  1. void AppManager::onAppActivated()  
  2. {  
  3.   
  4. }  
  5.   
  6. void AppManager::onShowMore()  
  7. {  
  8.     _D("callback onshowMore\n");  
  9. }  

 

 


3. 要监听的类实现

 

[cpp] view plain copy
 
 技术分享技术分享
  1. class UIManager   
  2. {  
  3. public:  
  4.     UIManager();  
  5.     ~UIManager();  
  6.   
  7.     void setCallBack(UIcallBack *pcallBack)  
  8.     {  
  9.         m_pcallBack = pcallBack;  
  10.     }  
  11.   
  12.     UIcallBack *m_pcallBack;  
  13. };  
 

在 UIManager里调用

[cpp] view plain copy
 
 技术分享技术分享
  1. m_pcallBack->onShowMore();  

 

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

 

http://blog.csdn.net/liukang325/article/details/45742675

以上是关于回调函数实现类似QT中信号机制的主要内容,如果未能解决你的问题,请参考以下文章

回调函数与Qt信号槽

Qt回调函数

Qt学习

Qt源码分析之信号和槽机制(QMetaObject是一个内部struct)

QT信号槽连接语法总结

Qt基础面试题