關於connect函數(Qt)


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){...}。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM