Qt4.8.5——QWSServer

一、QWSServer简介

QWSServer类在Qt中为嵌入式Linux封装了一个服务进程,继承自QObject类。

二、QWSServer文件包含

#include < QWSServer >

三、普通公有函数

函数函数说明
const QBrush & backgroundBrush () const如果没有模糊窗口,返回用于背景的画笔
const QList<QWSWindow *> & clientWindows ()返回当前顶层窗口的列表
void closeKeyboard ()关闭键盘设备
void closeMouse ()关闭鼠标设备
void enablePainting ( bool enable )使能在屏幕上绘画
void openKeyboard ()打开键盘设备
void openMouse ()打开鼠标设备
void refresh ()刷新显示
void refresh ( QRegion & region )刷新显示
void resumeMouse ()恢复鼠标
void sendIMEvent ( const QInputMethodEvent * event )发送输入法时间
void sendIMQuery ( int property )发送输入法查询
void suspendMouse ()延迟鼠标
QWSWindow * windowAt ( const QPoint & position )返回给定位置的窗口

还有29个继承自QObject的公有函数。

四、静态公有函数

函数函数说明
void addKeyboardFilter ( KeyboardFilter * filter )添加键盘过滤器
QWSServer * instance ()返回一个指向服务端实例的指针
bool isCursorVisible ()判断光标是否可见
QWSKeyboardHandler * keyboardHandler ()返回主要的键盘驱动
QWSMouseHandler * mouseHandler ()返回主要的鼠标驱动
const QList<QWSMouseHandler *> & mouseHandlers ()返回所有的鼠标驱动的列表
void processKeyEvent ( int unicode, int keycode, Qt::KeyboardModifiers modifiers, bool isPress, bool autoRepeat )处理给定的键事件
void removeKeyboardFilter ()移除键盘设备的过滤器
void screenSaverActivate ( bool activate )激活屏保
bool screenSaverActive ()判断屏保是否激活
void sendKeyEvent ( int unicode, int keycode, Qt::KeyboardModifiers modifiers, bool isPress, bool autoRepeat )发送键事件
void setBackground ( const QBrush & brush )设置背景
void setCurrentInputMethod ( QWSInputMethod * method )设置当前输入法
void setCursorVisible ( bool visible )设置光标可见性
void setDefaultKeyboard ( const char * keyboardDriver )设置默认键盘
void setDefaultMouse ( const char * mouseDriver )设置默认鼠标
void setKeyboardHandler ( QWSKeyboardHandler * driver )设置键盘驱动
void setMaxWindowRect ( const QRect & rectangle )设置窗口最大区域
void setMouseHandler ( QWSMouseHandler * driver )设置鼠标驱动
void setScreenSaver ( QWSScreenSaver * screenSaver )设置屏保
void setScreenSaverBlockLevel ( int eventBlockLevel )设置屏保块等级
void setScreenSaverInterval ( int milliseconds )设置屏保间隔时间
void setScreenSaverIntervals ( int * intervals )设置屏保间隔时间

还有7个继承自QObject的公有的静态成员函数。

五、QWSServer的详细描述

QWSServer类在Qt中为嵌入式Linux封装了一个服务进程。
当你运行Linux嵌入式Qt程序时,它要么作为服务器运行,要么连接到已经存在的服务器。服务器和客户机进程有不同的职责:客户机进程执行所有应用程序特定的操作。服务器进程负责管理客户端以及鼠标、键盘和屏幕输出。另外,服务器提供了处理输入法的函数。
在用于嵌入式Linux的Qt程序中,所有系统生成的事件都被传递给服务器应用程序,服务器应用程序然后将事件传播到适当的下位机。
注意:不需要自己构造QWSServer类,只需使用instance()函数。

六、客户端管理

当应用程序添加和移除窗口时,服务器程序维护每个窗口的信息。在用于嵌入式Linux的Qt程序中,顶层窗口被封装为一个QWSWindow对象。每个窗口都可以通过QWSWindow::client()函数来判断哪个客户端拥有它。使用clientWindows()函数检索当前顶层窗口的列表。

七、鼠标处理

当服务器应用使用Qt插件系统开始运行时,鼠标驱动被加载。鼠标驱动接收来自设备的鼠标事件,然后将每一个事件封装在QWSEvent类的实例中,然后将其传递给服务器。

八、键盘处理

当服务器应用使用Qt插件系统开始运行时,键盘驱动被加载。键盘驱动接收来自设备的键盘事件,然后将每一个事件封装在QWSEvent类的实例中,然后将其传递给服务器。

九、显示处理

当需要更新屏幕时,服务器将运行与将要更新的区域相交的所有顶层窗口,确保已关联的客户端已经更新了他们的内存缓冲区。服务器使用屏幕驱动将内存的内容复制到屏幕上。

十、输入法处理

不论服务器什么时候接收事件,它都会查询顶层窗口的堆来找到包含事件位置的窗口,然后服务器转发事件到适当的客户端。如果安装了输入法,它将作为在服务器和客户端程序之间的过滤器。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值