【问题标题】:How to pass arguments to Qt's DirectFB back-end?如何将参数传递给 Qt 的 DirectFB 后端?
【发布时间】:2013-10-01 22:25:25
【问题描述】:

通过指定 directfb 后端启动嵌入式 Qt 应用程序时,可以使用特定语法向其传递参数

./my-qt-app -qws -display directfb:960x720

这将改变分辨率。

假设我想从应用程序窗口中删除镶边。由于 directfb 有很多选项,我如何通过命令行指定它们?应该寻找内部 Qt 实现还是使用 DirectFB 项目指定的 CLI 参数?

UPDATE 虽然有一种机制使用冒号将参数传递给 显示后端,在 directfb 情况下,它不适用于分辨率更改。

【问题讨论】:

  • 钻研源码,好像DirectFB参数是由qt-4.8.5/src/gui/embedded/qscreenlinuxfb_qws.cpp实现的Linux Screen Framebuffer插件处理的。它确实接收以冒号分隔的列表中的参数,例如nographicsmodeswitchgenericcolorstty=(.\*)/dev/fb0 帧缓冲区设备规范,但是,显示分辨率是通过名为QWS_SIZE 的环境变量使用@987654328 计算的@ 格式。

标签: qt directfb


【解决方案1】:

传递多个参数的最佳方式是使用标准的directfbrc 机制,通常位于/etc 下或${DFB_CONFIG_DIR} 环境变量确定的目录下。

后来还注意到,像应用程序窗口镶边之类的东西是在 Qt 本身中设置的,而不是 DirectFB。

【讨论】:

    【解决方案2】:

    正如@milton 回答的那样,一个地方是 /etc/directfbrc,另一个地方是例如:

    ./app --dfb:window-surface-policy=auto
    

    你可以通过帮助获取所有命令:

    ./app --dfb:help
    

    【讨论】:

      猜你喜欢
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2011-05-08
      • 1970-01-01
      相关资源
      最近更新 更多