• 11321阅读
  • 1回复

翻译Qt4.4.3之 Qt 嵌入式 Linux显示管理 [复制链接]

上一主题 下一主题
离线lqrensn
 
只看楼主 倒序阅读 楼主  发表于: 2008-11-27
— 本帖被 XChinux 执行加亮操作(2008-11-27) —
[url][/url]Qt 嵌入式 Linux显示管理

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="<driver>[:<driver specific options>]...
          [:<display num>]"
<driver>的有效参数是LinuxFb, QVFb, VNC, Transformed, Multi 和 keys identifying custom drivers, <display num> 的参数通常是用来区分是否是相同的显示屏和是否支持多显示屏(更多详细信息请察看运行Qt嵌入式Linux应用程序文档). 驱动的详细选项描述请参看下面表格.

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


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

myApplication -display "<driver>[:<driver specific options>]...
          [:<display num>]"
子驱动和多驱动
VNC, Transformed和Multi screen drivers都依赖子驱动. 指定一个驱动的一般方法如下::

export QWS_DISPLAY="<driver>[:<subdriver>][:<subdriver options>]...
        [ :<display num>]"
就子驱动而言, 在每个子驱动和显示的数目去区分多个驱动和显示器是很重要的. 多屏幕驱动可以有多个子驱动,例如:

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

size=<width x height>
depth=<value>
mmHeight=<physical height in millimeters>
mmWidth=<physical width in millimeters>
运行一个尺寸为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 译者:opensource2009@163.com 2008-11-27 Qt 4.4.3
[ 此贴被lqrensn在2008-11-27 20:13重新编辑 ]
离线wch3535
只看该作者 1楼 发表于: 2010-12-15
hi,如果我想在不同的framebuffer上面显示QT程序,应该怎么配置环境变量,还是有其他的方式,例如在/dev/fb1上面显示。
快速回复
限100 字节
 
上一个 下一个