QT中的信号槽是QT框架中十分重要,同时也是十分特别的机制之一。
对于它的理解,你可以把它当做Windows系统中的消息处理函数。比如,当一个按钮控件被单击了一下,那么它就会发出一个信号(signal),这如同一个广播的消息,等待一个对其感兴趣的对象作出回应。当有一个对象作出回应时会使用连接(connect)函数,意思是,调用自己的一个槽(SLOT)来处理这个信号。也就是说,当信号发生时,被连接的槽会自动被回调。
至于该机制是如何实现的,目前还不关我的事。
接下来,以下面的代码为例说明一下:
//QT 5.6
#include <QApplication>
#include <QtCore>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton button("OK");
QObject::connect(&button, &QPushButton