1. 程式人生 > >【SylixOS】QT-QWS流程介紹

【SylixOS】QT-QWS流程介紹

  1. QWS簡介

QWS(QT Windows System)是QT自行開發的視窗系統,體系結構類似X Windows的C/S結構。QWS Server在物理裝置上顯示,QWS Client實現介面,兩者通過socket進行彼此的通訊。在很多嵌入式系統裡,QT程式基本上都是用QWS來實現,這樣保證程式的可移植性。

QT程式沒有嚴格區分服務端程式和客戶端程式,通知指定-platform引數來確定程式是客戶端還是服務端程式,對於QWSServer功能主要作為服務端程式統一管理多客戶端滑鼠鍵盤事件,以及不同客戶端視窗重疊渲染管理等。

服務端初始化主要流程:

  1. 初始化QWSServerSocket網路,當有客戶端連線接入是會建立對應的QWSClient,來管理客戶端程式事件收發。
  2. 初始化QWSDisplay管理視窗顯示。
  3. 初始化QWSCursor管理滑鼠鍵盤事件,主要包含兩個主要的類QWSMouseHandler和QWSKeyboardHandler。

QWSDiplay主要管理客戶端和服務端網路事件和請求管理。通過QWSCommand管理視窗操作的一些列請求,通過QWSEvent管理滑鼠鍵盤事件等。

QWSClient在QWS系統中屬於客戶端在服務端的代理物件,服務端通過QWSClient與客戶端互動,完成事件請求互動。

QWSWindow在QT屬於中間層的概念,它在平臺視窗管理系統中像一個容器,管理QWidget客戶端程式視窗的不同操作,比如視窗的位置大小、視窗是否處於focus狀態、toplevel widget的管理,QT事件的分發、以及不同視窗之間的重疊管理。

  1. 附錄

圖 6.1 QWS客戶端與服務端互動圖