QT - QWSServer
2010-05-12 14:53
260 查看
QT Embeded应用没有来严格的区分server和client进程,如果一个QT进程的启动参数中有-qws,那么这个进程就具有server胡管理功能,被称为QWS server,当然这个进程同样可以和其它的QT进程一样可以创建并显示widget,只有兼做server的功能而已。 这个所谓的server功能主要是由QWSServer对象来实现的。
1.QWSServer的管理对象
(1)keyboard设备和mouse设备 keyboard和mouse是一个display系统的输入设备,在QT Embedded中,QWSServer会初始化keyboard和mouse设备,并对其管理。读取key事件和mouse事件,并传送给相应的应用程序。 至于diplay系统中的显示设备screen,这不是由QWSServer统一管理的,为了提高效率,每个QT Client都可以打开这个设备,并向screen读写,以实现显示功能。但是每个QT client都向screen读写,屏幕会不会写乱了? 在QT中,这部分工作是由一个叫做QWSRegionManager的对角来管理的,以后再详细说明。
(2)QWSClient 看上去,QWSServer QWSClient这两个类应该组成一个c/s结构,实际上QWSServer代表一个server socket. 当QT Client连接到QWSServer的server socket时,QWSServer会产生一个client socket与QT Client的socket进行通讯。QWSClient看上去像一个stub对象,代表一个QT client进程。每个QT Client进程在QWS server进程都有相应的QWSClient。
(3)QWSWindow QWSWindow对应于QT Client的toplevel widget。nontoplevel widget由于每个QT Client自行管理。所有toplevel widget需要接受QWS Server的管理,包括widget的focus,altitude,region等。
(4)其它 QWSServer管理的其它全局对象,还有QWSScreenSaver,QWSSoundServer等。
2. QWSServer的初始化 QWSServer的初始化是在QApplication的初始化过程中完成的,具体的流程如下:
QApplication::construct-->qt_init-->QWSServer::startup QWSServer::startup是一个static函数,创建全局对象qwsServer.QWSServer的构造函数会依次初始化所管理的对象。
文章出处:DIY部落(http://www.diybl.com/course/6_system/linux/Linuxjs/20090521 /167547.html)
from: http://hi.baidu.com/rwen2012/blog/item/9f0b4d7bc368d9ff0bd1876f.html
1.QWSServer的管理对象
(1)keyboard设备和mouse设备 keyboard和mouse是一个display系统的输入设备,在QT Embedded中,QWSServer会初始化keyboard和mouse设备,并对其管理。读取key事件和mouse事件,并传送给相应的应用程序。 至于diplay系统中的显示设备screen,这不是由QWSServer统一管理的,为了提高效率,每个QT Client都可以打开这个设备,并向screen读写,以实现显示功能。但是每个QT client都向screen读写,屏幕会不会写乱了? 在QT中,这部分工作是由一个叫做QWSRegionManager的对角来管理的,以后再详细说明。
(2)QWSClient 看上去,QWSServer QWSClient这两个类应该组成一个c/s结构,实际上QWSServer代表一个server socket. 当QT Client连接到QWSServer的server socket时,QWSServer会产生一个client socket与QT Client的socket进行通讯。QWSClient看上去像一个stub对象,代表一个QT client进程。每个QT Client进程在QWS server进程都有相应的QWSClient。
(3)QWSWindow QWSWindow对应于QT Client的toplevel widget。nontoplevel widget由于每个QT Client自行管理。所有toplevel widget需要接受QWS Server的管理,包括widget的focus,altitude,region等。
(4)其它 QWSServer管理的其它全局对象,还有QWSScreenSaver,QWSSoundServer等。
2. QWSServer的初始化 QWSServer的初始化是在QApplication的初始化过程中完成的,具体的流程如下:
QApplication::construct-->qt_init-->QWSServer::startup QWSServer::startup是一个static函数,创建全局对象qwsServer.QWSServer的构造函数会依次初始化所管理的对象。
文章出处:DIY部落(http://www.diybl.com/course/6_system/linux/Linuxjs/20090521 /167547.html)
from: http://hi.baidu.com/rwen2012/blog/item/9f0b4d7bc368d9ff0bd1876f.html
相关文章推荐
- QT学习笔记(二):QWSServer class
- QT Embedded二三事之QWSServer
- 【Qt开发】关于QWSServer
- QWSServerSocket内核组件依赖问题
- QTcpServer+QTcpSocket使用整理
- Qt应用程序过大引起的nfs异常:nfs: server *** not responding 处理方法
- qt 程序启动参数 -qws
- QTcpServer、QTcpSocket、QUdpSocket在聊天程序上的应用
- qt QTcpServer与QTcpSocket通讯
- QT中QWS含义
- Qt 命令 -qws
- QTcpServer多个TcpSocket连接
- QTcpserver listen
- qt4 tcp QTcpSocket QTcpServer 传输文件
- 在Ubuntu 10.04中文版下Qt编程,使用unixODBC和FreeTDS连接MS SQL Server 2005,并且中文不出现乱码的方法
- Qt+MySql+SqlServer
- omap3530 移植 qt2.2.0 触摸屏会飘 QWS_MOUSE_PROTO 决定?
- Qt模块化笔记之network——TcpServer与监听说明
- XWindow、Server、Client和QT、GTK之间的关系
- QTcpServer多线程实现