首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Qt學習之路(4):初探信號槽機制

     編輯:關於C++

Qt 最引以為傲的 信號槽機制:像插頭與插座。事件發生(點擊、按鍵)→ 元件發出信號(廣播)→ 對應槽自動執行(回呼)。

最簡單範例:按鈕退出程式


#include <QtGui/QApplication>
#include <QtGui/QPushButton>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QPushButton *button = new QPushButton("Quit");
    QObject::connect(button, SIGNAL(clicked()), &a, SLOT(quit()));
    button->show();
    return a.exec();
}

核心語句解析


QObject::connect(button, SIGNAL(clicked()), &a, SLOT(quit()));
  • QObject:所有類別根,提供單根繼承體系
  • connect():靜態函式連接信號槽
  • clicked():按鈕被點擊時發出的信號
  • quit():QApplication 的槽函式,退出事件循環

按鈕點擊 → 發出 clicked() → QApplication 執行 quit() → 程式退出。

特色與優勢

  • 類似 Swing Listener 但更簡單
  • 零耦合:發送者不知接收者,接收者不知發送者
  • SIGNAL/SLOT 為 Qt 擴展關鍵字(IDE 高亮),需 qmake 預處理
  • 與 Unix signal 無關,僅名稱相同

信號槽是 Qt 核心,後續將深入探討。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved