QWS簡介
QWS(QT Windows System)是QT自行開發(fā)的窗口系統(tǒng),體系結(jié)構(gòu)類似X Windows的C/S結(jié)構(gòu)。QWS Server在物理設(shè)備上顯示,QWS Client實現(xiàn)界面,兩者通過socket進行彼此的通訊。在很多嵌入式系統(tǒng)里,QT程序基本上都是用QWS來實現(xiàn),這樣保證程序的可移植性。
QWSServer服務(wù)端
QT程序沒有嚴格區(qū)分服務(wù)端程序和客戶端程序,通知指定-platform參數(shù)來確定程序是客戶端還是服務(wù)端程序,對于QWSServer功能主要作為服務(wù)端程序統(tǒng)一管理多客戶端鼠標鍵盤事件,以及不同客戶端窗口重疊渲染管理等。
服務(wù)端初始化主要流程:
初始化QWSServerSocket網(wǎng)絡(luò),當有客戶端連接接入是會創(chuàng)建對應(yīng)的QWSClient,來管理客戶端程序事件收發(fā)。
初始化QWSDisplay管理窗口顯示。
初始化QWSCursor管理鼠標鍵盤事件,主要包含兩個主要的類QWSMouseHandler和QWSKeyboardHandler。
QWSDiplay
QWSDiplay主要管理客戶端和服務(wù)端網(wǎng)絡(luò)事件和請求管理。通過QWSCommand管理窗口操作的一些列請求,通過QWSEvent管理鼠標鍵盤事件等。
QWSClient客戶端
QWSClient在QWS系統(tǒng)中屬于客戶端在服務(wù)端的代理對象,服務(wù)端通過QWSClient與客戶端交互,完成事件請求交互。
QWSWindow
QWSWindow在QT屬于中間層的概念,它在平臺窗口管理系統(tǒng)中像一個容器,管理QWidget客戶端程序窗口的不同操作,比如窗口的位置大小、窗口是否處于focus狀態(tài)、toplevel widget的管理,QT事件的分發(fā)、以及不同窗口之間的重疊管理。
6. 附錄
創(chuàng)新互聯(lián)提供高防服務(wù)器租用、云服務(wù)器、香港服務(wù)器、成都西信服務(wù)器托管等
圖 6.1 QWS客戶端與服務(wù)端交互圖