下面对Qt所设计的信号槽机制进行解析,部分摘自网络。
信号:
当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,
它不知道另一端是谁在接收这个信号。这样就做到了真正的信息封装,
能确保对象被当作一个真正的软件组件来使用。
槽:
用于接收信号,而且槽只是普通的对象成员函数。
一个槽并不知道是否有任何信号与自己相连接。而且对象并不了解具体的通信机制。
信号与槽的连接:
所有从 QObject 或其子类 ( 例如 Qwidget ) 继承的类都能够包含信号和槽。
因为信号与槽的连接是通过 QObject 的 connect() 成员函数来实现的。
connect(sender, SIGNAL(signal), receiver, SLOT(slot));
如下例中的:
QObject::connect(button, SIGNAL(clicked()), &a, SLOT(quit()));
其中,SIGNAL() 与