Qt/E中只能放在服务器进程中的工作

    Qt/E服务器客户端架构这篇文章中讲到了Qt的架构,服务器进程管理着底层的各种设备,因此有许多工作只能放在Qt/E服务器进程中进行,下面列举一些:

  1. 键盘过滤:

        void QWSServer::addKeyboardFilter ( KeyboardFilter * filter )   [static]

        这个是QWSServer的一个静态函数,不需要实例化QWSServer即可访问,这个只是从c++语法角度而言,实际上还是要访问其实例的,只不过因为QWSServer只有一个实例,因此没必要暴露给用户而已。并且QWSServer显然在客户端进程中是没有实例化的,所以要进行键盘过滤只能在QT/E服务器进程中进行。Qt/E不支持全局热键也是这个原因,不过我们可以借助服务器进程实现一种伪全局热键。

  1. 输入法:

            输入法只能放在服务器进程中,是因为其设计架构,用到了很多服务器进程中的内部信息,要通过继承QWSInputMethod来实现输入法的话,只能放在服务器进程

  1. 屏幕保护:

    QWSScreenSaver提供了屏幕保护的基本操作接口,其内部状态由QWSSErver来维护,和输入法一样,Qt/E的内部代码中处处是将其放在了服务器端,只能如此。

  2. 控制屏幕是否显示

    void QWSServer::enablePainting ( bool enable )

        这个函数非常有用,当要控制所有的应用程序的屏幕显示时,让屏幕保持当前内容,那么就将enable设为false即可,这样所有的应用程序都不能改变屏幕显示内容了

    应该说有非常多的工作只能在服务器进程中进行,暂时就想到这么多,先写这几个吧。

原文地址:https://www.cnblogs.com/baizx/p/1787581.html