QObject::connect函數,顧名思義,鏈接函數,作用是鏈接信號(signal)和槽(slot), 基本格式如下:
QObject::connect(sender, signal, receiver, slot)
當sender發出了signal(這種信號類似於廣播,誰需要誰就建立相應的槽去接收)之后,會自動調用receiver 的slot函數。connect函數也是信號槽機制的體現。
而QObject::connect( )這個函數有五種重載(overloaded)形式,下面給出來。
QMetaObject::Connection connect(const QObject *, const char *, const QObject *, const char *, Qt::ConnectionType); QMetaObject::Connection connect(const QObject *, const QMetaMethod &, const QObject *, const QMetaMethod &, Qt::ConnectionType); QMetaObject::Connection connect(const QObject *, const char *, const char *, //receiver為this指針 Qt::ConnectionType) const; QMetaObject::Connection connect(const QObject *, PointerToMemberFunction, const QObject *, PointerToMemberFunction, //指向成員函數的指針 Qt::ConnectionType) QMetaObject::Connection connect(const QObject *, PointerToMemberFunction, Functor); //Functor可以接受static函數,全局函數,以及lambda表達式
具體解釋可以查看這個博客:https://www.devbean.net/2012/08/qt-study-road-2-signal-slot/
另外加點容易遺漏的知識點:可以用父類的構造函數來初始化子類的一部分數據。比方說MainWindow(QWidget *parent):QMainWindow(parent){...}。