Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2399239
  • 博文数量: 862
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10598
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(862)

文章存档

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: C/C++

2009-08-03 09:20:30

Qt的显示管理,Qt嵌入式客户端默认的行为是将其器件写入内存, 而服务器负责把内存的内容存储到屏幕上。服务器使用屏幕驱动器将内存的内容复制到屏幕显示。

当服务端应用程序开始启动时,使用Qt的插件系统,屏幕驱动被加载

内容:

  • 可用的驱动
  • 指定一个驱动
  • 子驱动和多驱动

可用的驱动

嵌入式LinuxQt为Linux framebuffer提供的驱动, 有virtual framebuffer, transformed screens, VNC servers和 multi screens. 运行configure脚本可以列出可用的驱动:

 ./configure -help 

在Qt的默认配置文件中,只有一个未加速的Linux framebuffer driver (/dev/fb0) 是可用的.通过使用configure脚本可以让各种驱动可用或禁用. 例如:

 ./configure -qt-gfx-transformed 

通常的屏幕驱动能通过QScreen的子类和创建的屏幕驱动插件(从QScreenDriverPlugin类继承)被执行. QScreenDriverFactory类默认执行将自动检测插件,在运行期加载驱动到服务端应用程序.

指定一个驱动

通过设置QWS_DISPLAY环境变量去指定使用哪个驱动,例如 (假设当前的shell是bash,ksh,zsh或者sh):

 export QWS_DISPLAY="[:]...           [:]" 

的有效参数是LinuxFb, QVFb, VNC, Transformed, Multi 和 keys identifying custom drivers, 的参数通常是用来区分是否是相同的显示屏和是否支持多显示屏(更多详细信息请察看运行Qt嵌入式Linux应用程序文档). 驱动的详细选项描述请参看下面表格.

驱动详细选项 可用的 描述
tty= LinuxFb 程序运行时传送至控制台的设备文件.
nographicsmodeswitch LinuxFb 确定应用程序没有在图形模式下.
littleendian LinuxFb 在大端系统下告诉驱动必须处理小端的frame buffer.
mmWidth= LinuxFb, QVFb 屏幕的物理宽度 (通常是按分辨率计算).
mmHeight= LinuxFb, QVFb 屏幕的物理宽度 (通常是按分辨率计算).
LinuxFb  
VNC, Transformed, Multi 指定一个子驱动.
Transformed 指定屏幕的旋转. x的有效值为90, 180和270.
offset= Multi 指定子窗口左上角的坐标系(默认0,0).

当运行应用程式时,也可以通过 -display选项设置QWS_DISPLAY环境变量.例如:

 myApplication -display "[:]...           [:]" 

子驱动和多驱动

VNC, Transformed和Multi screen drivers都依赖子驱动. 指定一个驱动的一般方法如下::

 export QWS_DISPLAY="[:][:]...          [ :]" 

就子驱动而言, 在每个子驱动和显示的数目去区分多个驱动和显示器是很重要的. 多屏幕驱动可以有多个子驱动,例如:

 export QWS_DISPLAY="Multi: QVFb:0 QVFb:offset=640,0:1 :2" 

如果子驱动没有被指定,VNC screen驱动被默认为一个虚拟屏驱动.在这种情况下VNC驱动允许指定一些额外的参数(可选的),默认虚拟屏的尺寸和深度:

  • size=
  • depth=
  • mmHeight=
  • mmWidth=

运行一个尺寸为720x480像素32位的VNC虚拟屏的例子如下:

 export QWS_DISPLAY="VNC:size=720x480:depth=32" 

在Linux framebuffer上运行VNC屏驱动的例子:

 export QWS_DISPLAY="VNC:LinuxFb" 

在这最后一个例子, Qt同时使用两个显示驱动, 设备屏幕和通过网络的VNC客户端的显示的显示输出.


Copyright © 2008 Nokia Trademarks 译者:lry
2008-11-27
Qt 4.4.3

 

阅读(889) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~