初步剖析QT事件處理全過程(Windows)
阿新 • • 發佈:2017-07-04
職責 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)