1. 程式人生 > >初步剖析QT事件處理全過程(Windows)

初步剖析QT事件處理全過程(Windows)

職責 spa message alt cati 窗口 初步 負責 啟動

一、說起Qt事件處理,在windows平臺下,當然離不開Win32:

Win32程序的基本結構:
  1.註冊窗口;
  2.創建窗口;
  3.啟動由GetMessage和DispatchMessage構成的事件循環;
  4.被註冊的回調函數 WndProc 負責相應各類事件;

Windows會為當前執行的每個Windows程序維護一個消息隊列:

技術分享  

以上即簡單介紹Windows消息處理流程;

二、QT事件入口類:

  QApplication
    :public QGuiApplication
    :public QCoreApplication
    :public QObject (QObject三大職責:內存管理、內省、事件處理制)
  GUI應用程序 QApplication
  GUI僅使用QML QGuiApplication
  非GUI應用程序 QCoreApplication

先介紹一個可以在程序開始,捕獲系統級事件的方法,捕獲後如果下發,才允許qt做進一步處理,如果不下發,qt就傻眼了。

技術分享

三、接下來進入QT處理事件流程,以流程圖和部分偽代碼代替,可能大家更容易理解:

技術分享

接下來就是大家熟悉的過程了。後續會具體分析各層次的qt事件相關的問題。


轉載標明出處,一起學習交流,尊重大家的勞動成果,共同打造文明、有愛社區環境。

初步剖析QT事件處理全過程(Windows)