1. 程式人生 > >小談Qt中的connect函式

小談Qt中的connect函式

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;

};