学习QT这个重要概念之前,我首先温习了C++ Primer关于函数指针的知识.
函数指针是指向函数而非指向对象的指针,和其他指针一样,函数指针也指向某个特地的类型,函数类型由其返回类型以及形参表确定,而与函数名无关。
bool (*pf) (comst string &,const string &);
这里注意的是:允许将形参类型定义为函数类型,但函数的返回类型则必须是指向函数的指针,而不能是函数.
在我们所熟知的很多 GUI 工具包中,窗口小部件 (widget) 都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在 QT 中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。 信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的.
参考文章:
http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/index.html