Qt5 - 2. 信号&槽
2019-05-25 本文已影响0人
QWERDF007
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)
。一般的 sender
和 receiver
都是 QObject *
,比如指向 QPushButton
,QLineEdit
实例的指针 ,而 signal
和 slot
则是 QMetaMethod &
,每个函数都可看作是它的子类,因此 signal
和 slot
可以是指向函数的指针(也可以用Lambda表达式作为槽)。信号和槽需要参数(类型)一致,可以槽的参数少于信号(顺序一致)。