返回介绍

Qt/嵌入式的虚拟帧缓冲

发布于 2019-10-04 14:57:56 字数 1347 浏览 1096 评论 0 收藏 0

虚拟帧缓冲允许在你的桌面机器上开发Qt/嵌入式程序,而不用在命令台和X11之间来回切换。

The virtual framebuffer is located in $QTDIR/tools/qvfb.

使用虚拟帧缓冲

  1. 确认$QTDIR/src/tools/qconfig.h中的QT_NO_QWS_VFB是没有被定义的,并且编译Qt/Embedded库。
  2. qvfb作为一个普通的Qt/X11应用程序来编译并且运行它。不要把它作为一个Qt/嵌入式应用程序来编译。
  3. 启动一个Qt/嵌入式主程序(比如,使用QApplication::GuiServer标志来构造一个QApplication或者在命令行下使用-qws参数)。你将会需要指定你所要使用虚拟帧缓冲驱动的服务器,例如:
        widgets -qws -display QVFb:0
        
  4. 你也可以设置QWS_DISPLAY环境变量为QVFb:0

qvfb支持下列命令行参数:

  • -width width

    虚拟帧缓冲的宽度(默认:240)。

  • -height height

    虚拟帧缓冲的高度(默认:320)。

  • -depth depth

    虚拟帧缓冲的色深(1、8或者32,默认:8)。

  • -nocursor

    在帧缓冲窗口不显示X11光标。

  • -qwsdisplay :id

    提供的Qt/嵌入式显示id(默认:0)。

虚拟帧缓冲设计

虚拟帧缓冲使用了共享存储区域(虚拟的帧缓冲)来模拟帧缓冲并且在一个窗口中(qvfb)模拟一个应用来显示帧缓冲。显示的区域被周期性的改变和更新,所以你会看到帧缓冲的不连续的快照,而不是每一个单独的绘画操作。因为这个原因的绘画问题,比如闪烁,知道程序在使用真正的帧缓冲而运行的时候就不会再出现了。

目标刷新速度可以通过View|Refresh Rate菜单项来设置。这将会倒置qvfb更加频繁地检查要被刷新的区域。速度仅仅是一个目标。如果一个小的绘画操作完成了,帧缓冲将不会在绘画事件之间显示任何更新。如果一个应用程序正在显示一个动画,更新将会更频繁,并且应用程序和qvfb将会争夺处理器时间。

鼠标和键盘事件通过命名管道传递给Qt/嵌入式主程序处理。

虚拟帧缓冲只是一个开发工具。在虚拟帧缓冲设计中没有考虑任何安全问题。在产品环境中应该避免这个问题,QT_NO_QWS_VFB在产品库中应该是被定义的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文