前天在我很久以前的一篇博文
(http://blog.csdn.net/liukang325/article/details/45742675)
中有人回复说看到我的博文很激动,希望我详细介绍一下信号与槽的机制,想自己通过回调实现一下。我写的博客能帮助到你我也很激动!~所以就依我自己的理解简单实现一下供你参考~
只是一个最简单的信号。并没有实现 QT中信号还带参数传递的功能。想要更深入的理解,可以阅读一下QT的源码。
大家知道想要用Qt中的信号槽。离不开QObject,那么我就写个最简单的KObject
KObject.h
#include <map>
# define kslots
# define ksignals public
# define kemit
class KObject;
struct MetaObject
{
static void active(KObject * sender, int idx);
};
struct Connection
{
KObject * receiver;
int sltID;
};
typedef std::map<int, Connection> ConnectionMap;
class KObject
{
friend c