全部博文(118)
分类: LINUX
2008-10-20 15:05:55
qvfb - Virtual framebuffer for Qt
The virtual framebuffer allows Qt/Embedded programs to be developed on
your desktop machine, without switching between consoles and X11.
Start a Qt/Embedded master application (i.e., construct QApplication
with QApplication::GuiServer flag or use the -qws command line parame‐
ter). You will need to specify to the server that you wish to use the
virtual framebuffer driver, e.g.:
widgets -qws -display QVFb:0
You may prefer to set the QWS_DISPLAY environment variable to be
QVFb:0.
qvfb supports the following command line options:
-width width: the width of the virtual framebuffer
(default: 240).
-height height: the height of the virtual framebuffer
(default: 320).
-depth depth: the depth of the virtual framebuffer (1, 8
or 32; default: 8).
-nocursor: do not display the X11 cursor in the
framebuffer window.
-qwsdisplay :id the Qt/Embedded display id to provide
(default: 0).
Virtual Framebuffer Design
The virtual framebuffer emulates a framebuffer using a shared memory
region (the virtual frame buffer) and a utility to display the frame‐
buffer in a window (qvfb). The regions of the display that have
changed are updated periodically, so you will see discrete snapshots of
the framebuffer rather than each individual drawing operation. For this
reason drawing problems such as flickering may not be apparent until
the program is run using a real framebuffer.
The target refresh rate can be set via the "View|Refresh Rate" menu
item. This will cause qvfb to check for updated regions more quickly.
The rate is a target only. If little drawing is being done, the frame‐
buffer will not show any updates between drawing events. If an applica‐
tion is displaying an animation the updates will be frequent, and the
application and qvfb will compete for processor time.
Mouse and keyboard events are passed to the Qt/Embedded master process
via named pipes.
The virtual framebuffer is a development tool only. No security issues
have been considered in the virtual framebuffer design. It should be
avoided in a production environment; QT_NO_QWS_VFB should always be
defined in production libraries.
libminigui-1.6.10
minigui-res-1.6.10
mg-samples-1.6.10
首先编译libminigui-1.6.10,其编译方式请参照minigui的相关说明,最好不要更改prefix参数,同时要注意你的LD_LIBRARY_PATH定义,
不然你编译minigui的例子的时候,会报出系统无法找到库文件和头文件的问题,头文件默认会安装在/usr/local/include目录下,但是你如果不指定
C_INCLUDE_DIR的话,同样会报出找不到头文件的问题,最好把头文件拷过去就行,在libminigui安装好了之后,安装minigui的res,这个很简单,
这个执行完毕之后,可以编译例子,编译完的例子程序运行时,会出现如下的错误:
yongtao@ubuntu:~/km118-display/mg-samples-1.6.10/src$ ./simplekey
NEWGAL: Does not find matched engine: qvfb.
InitGUI: Can not get graphics engine information!
问题就是没有安装qvfb,你去查看你的/usr/local/etc/minigui.cfg文件,指定的显示器gal是qvfb,ubuntu的用户不用自己下载qvfb的代码来
安装,并且自己安装还会说找不到qt3,而实际上qt3已经被安装,只需要使用我最前面使用的命令安装即可。。
然后再次运行,还是会报一样的错误,这里就需要先运行qvfb
yongtao@ubuntu:~/km118-display/mg-samples-1.6.10/src$ qvfb &
[1] 16533
会弹出一个界面,file->configure来配置屏幕大小。
然后运行你编译的例子
yongtao@ubuntu:~/km118-display/mg-samples-1.6.10/src$ ./simplekey
在弹出的界面显示你运行的控件,则例子运行成功!