Qt5 - 2. 信号&槽

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

//#include "mainwindow.h"
#include <QApplication>
#include <QPushButton>

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表达式作为槽)。信号和槽需要参数(类型)一致,可以槽的参数少于信号(顺序一致)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容