小談Qt中的connect函式
阿新 • • 發佈:2019-01-13
connect的用法,實用為主。
bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection )
sender 即傳送者,可以是各種各樣的QObject物件。
signal 是訊號,傳送者執行相應動作的時候所觸發的訊號函式,當然這裡的訊號函式是要因QObject而異了,不同的QObject能觸發的訊號函式不同,可以自己在QObject中定義。
receiver 即接收者,可以是各種各樣的QObject物件。
method 是接受者中的某一函式
connect函式執行結果就是,當sender的signal函式執行後,receiver的method也會跟著執行。
應用例項:
connect(newAction, SIGNAL(triggered()), this, SLOT(newfile()));
這行程式碼的含義就是當newAction的triggered()事件發生之後,那麼this的newfile()就會執行。
注意:自定義的signal函式和slot函式要在類中相應的位置宣告好了,如:
class ListTreeView : public QTreeView { Q_OBJECT public: ListTreeView(); signals: void testSignal(); public slots: void testSlot(); private: QStandardItemModel *mainModel; };