1. 程式人生 > >Qt入門之connect, SIGNAL, SLOT

Qt入門之connect, SIGNAL, SLOT

http://blog.csdn.net/xgbing/article/details/7764326

在QT中,事件處理訊號叫做SIGNAL,事件處理函式叫做SLOT,兩者關聯函式是QOjbect::connect。

示例:

  1. connect(sender, SIGNAL(signal), receiver, SLOT(slot));  


sender: 指觸發的控制元件。

signel:sender中定義的訊號。

receiver:可以是一個類。

slot: 在類中定義的處理函式。

在類中定義slot的方法如下:

  1. class PushBtn : public QPushButton  
  2. {  
  3.     Q_OBJECT  
  4. public:  
  5.     ...  
  6. private slots:        //將事件處理函式放在此關鍵字下
  7.     void slot_fun();  
  8.         ...  
  9. };  


 注意此類的定義須在標頭檔案中,否則編譯時會報錯:

error LNK2001: 無法解析的外部符號 ...

另外,QT庫的類內部定義的許多solt,我們可以直接使用。

如按下一個按鍵時退出:

  1.  1 #include <QApplication>  
  2.  2 #include <QPushButton>  
  3.  3 int main(int argc, char
     *argv[])  
  4.  4 {  
  5.  5     QApplication app(argc, argv);  
  6.  6     QPushButton *button = new QPushButton("Quit");  
  7.  7     QObject::connect(button, SIGNAL(clicked()),  
  8.  8                      &app, SLOT(quit()));  
  9.  9     button->show();  
  10. 10     return app.exec();  
  11. 11 }