一、原理
Qt的"信号与槽",笔者是这么理解的--"回调机制”。
在Gui用户界面中,往往有这种需求,“动作”一个窗口部件,需要激活其他的操作。这种功能,我们经常使用回调函数来实现。
在MINIGui中,也提供了一套类似的机制,就是postmessage、sendmessage。(呵呵,其实也是windows的机制啦~~)
信号与槽的关联有以下几种方式:
一个信号与一个槽关联;
一个信号与多个槽关联:槽函数的执行顺序是随机的,与关联的顺序无关;
多个信号与一个槽关联;
信号与信号关联:当第一个信号触发后,会激发Qt去发送第二个信号
二、函数解析
QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, constchar * method, Qt::ConnectionType type = Qt::AutoConnection )
信号与槽通过QObject::connect(..)进行关联。
send是信号的发送者,必须是一个QObject类对象。
singal就是一个信号,Qt本身提供了一些信号。例如按钮的clicked();对话框的accept()、reject()等等