Qt5 - 2. 信号&槽

Qt 中一个重要的机制就是信号与槽,理解和熟练使用信号与槽对于学好 Qt 非常有必要。先上码看看:

//#include "mainwindow.h"
#include 
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QPushButton btn("Quit");
    QObject::connect(&btn, &QPushButton::clicked, &QApplication::quit);
    btn.show();

    return a.exec();
}

效果图:

btn_quit

注意到上述代码中 QObject::connect() 这个函数,在 Qt 中有多个重载,最常用的一种是 connect(sender, signal, receiver, slot)。一般的 senderreceiver 都是 QObject * ,比如指向 QPushButtonQLineEdit 实例的指针 ,而 signalslot 则是 QMetaMethod &,每个函数都可看作是它的子类,因此 signalslot 可以是指向函数的指针(也可以用Lambda表达式作为槽)。信号和槽需要参数(类型)一致,可以槽的参数少于信号(顺序一致)。

你可能感兴趣的:(Qt5 - 2. 信号&槽)