- QWS简介
QWS(QT Windows System)是QT自行开发的窗口系统,体系结构类似X Windows的C/S结构。QWS Server在物理设备上显示,QWS Client实现界面,两者通过socket进行彼此的通讯。在很多嵌入式系统里,QT程序基本上都是用QWS来实现,这样保证程序的可移植性。
- QWSServer服务端
QT程序没有严格区分服务端程序和客户端程序,通知指定-platform参数来确定程序是客户端还是服务端程序,对于QWSServer功能主要作为服务端程序统一管理多客户端鼠标键盘事件,以及不同客户端窗口重叠渲染管理等。
服务端初始化主要流程:
- 初始化QWSServerSocket网络,当有客户端连接接入是会创建对应的QWSClient,来管理客户端程序事件收发。
- 初始化QWSDisplay管理窗口显示。
- 初始化QWSCursor管理鼠标键盘事件,主要包含两个主要的类QWSMouseHandler和QWSKeyboardHandler。
QWSDiplay主要管理客户端和服务端网络事件和请求管理。通过QWSCommand管理窗口操作的一些列请求,通过QWSEvent管理鼠标键盘事件等。
- QWSClient客户端
QWSClient在QWS系统中属于客户端在服务端的代理对象,服务端通过QWSClient与客户端交互,完成事件请求交互。
QWSWindow在QT属于中间层的概念,它在平台窗口管理系统中像一个容器,管理QWidget客户端程序窗口的不同操作,比如窗口的位置大小、窗口是否处于focus状态、toplevel widget的管理,QT事件的分发、以及不同窗口之间的重叠管理。
图 6.1 QWS客户端与服务端交互图