Qt/E中只能放在服务器进程中的工作
Qt/E服务器客户端架构这篇文章中讲到了Qt的架构,服务器进程管理着底层的各种设备,因此有许多工作只能放在Qt/E服务器进程中进行,下面列举一些:
- 键盘过滤:
void QWSServer::addKeyboardFilter ( KeyboardFilter * filter ) [static]
这个是QWSServer的一个静态函数,不需要实例化QWSServer即可访问,这个只是从c++语法角度而言,实际上还是要访问其实例的,只不过因为QWSServer只有一个实例,因此没必要暴露给用户而已。并且QWSServer显然在客户端进程中是没有实例化的,所以要进行键盘过滤只能在QT/E服务器进程中进行。Qt/E不支持全局热键也是这个原因,不过我们可以借助服务器进程实现一种伪全局热键。
- 输入法:
输入法只能放在服务器进程中,是因为其设计架构,用到了很多服务器进程中的内部信息,要通过继承QWSInputMethod来实现输入法的话,只能放在服务器进程
-
屏幕保护:
QWSScreenSaver提供了屏幕保护的基本操作接口,其内部状态由QWSSErver来维护,和输入法一样,Qt/E的内部代码中处处是将其放在了服务器端,只能如此。
-
控制屏幕是否显示
void QWSServer::enablePainting ( bool enable )
这个函数非常有用,当要控制所有的应用程序的屏幕显示时,让屏幕保持当前内容,那么就将enable设为false即可,这样所有的应用程序都不能改变屏幕显示内容了
应该说有非常多的工作只能在服务器进程中进行,暂时就想到这么多,先写这几个吧。