QT 訊息處理-訊號與槽
阿新 • • 發佈:2021-07-01
Qt訊號與槽
Qt中的訊息處理機制
-訊號(Signal):由作業系統產生的訊息
-槽(Slot) :程式中的訊息處理函式
-連線(Connect) :將系統訊息繫結到訊息處理函式
-訊號到槽的連線必須發生在兩個Qt類物件之間!
QT新關鍵字
SIGNAL-指定訊息名
SLOT-指定訊息處理函式名
Q_OBJECT-訊號與曹機制中必須加上
slots-用於在類中宣告訊息處理函式
#include <QtGui/QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication a(argc, argv); QPushButton b;//成為頂層視窗 b.setText("Click me to quit!"); b.show(); QObject::connect(&b,SIGNAL(clicked()),&a,SLOT(quit())); //將按鈕物件的點選訊息對映到a物件的quit函式 return a.exec(); }
解決經典問題: Object::connect: No such slot… 、
1. 檢查類是否繼承於QObject
2. 檢查類宣告的開始處是否新增Q_OB丿ECT
3. 檢查是否使用slots關鍵字進行槽宣告
4. 檢查槽的名稱是否拼寫錯誤
5. 重新執行qmake