概述
mini2440开发板上已经默认安装了QtE-4.6.3库,如果直接使用,则所有的Qt程序都是默认竖屏显示的,如何横屏显示,也即如何旋转屏幕呢?
经过一番折腾,最终找到了方法,现记录下来备忘。
第一步:设置环境变量QWS_DISPLAY
当应用程序./myQtApp -qws启动时,会去检测QWS_DISPLAY这个环境变量,设置一些显示相关的东西。
旋转屏幕就在这里设置,方法是:
export QWS_DISPLAY=Transformed:Rot90
其中Rot90可以替换为Rot180、Rot270、Rot0等,也可以直接写成90、180、270、0。
实际上,运行mini2440自带的官方Qt例程的时候,此环境变量是已经被配置的,直接在开发板中vi /bin/qt4
,在第10行可发现:export QWS_DISPLAY=:1
博主根据这个qt4脚本,新建了一个名为qtenv的脚本,使得以后运行Qt程序的时候可以直接使用./qtenv myQtApp的方式,减少每次运行都要配置环境变量的麻烦。这个脚本的内容可参考博主的另一篇文章《交叉编译qwt控件并在Mini2440开发板上运行(Ubuntu12.04 + QtE4.6.3 + qwt6.1.2)》的4.2节:配置Qt程序的运行环境并运行程序
将qtenv脚本中的:1直接改为Transformed:Rot90即可。目前博主还没搞懂这个:1是什么意思,待以后慢慢研究。
配置完成后,随便运行一个Qt程序./qtenv testQt,发现提示错误: Transformed: driver not found。这是因为交叉编译Qt的时候,没有将支持屏幕旋转的驱动编译进来。
第二步:重新交叉编译QtE-4.6.3,加上支持屏幕旋转的-qt-gfx-transformed选项
打开mini2440官方提供的QtE-4.6.3源文件qt-everywhere-opensource-src-4.6.3中的build-all脚本,发现果然没有支持屏幕旋转,在第8行最后增加选项-qt-gfx-transformed,保存,重新交叉编译即可。
-------------------------------------------------------------------------------------------------------
为了搞清楚-qt-gfx-transformed是什么意思,打开configure文件,在第687行发现以下参数:
CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen directfb"
同时在3873行有以下说明:
-qt-gfx-<driver> ... Enable a graphics <driver> in the QtGui library.
Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
可见transformed是GtGui库中的一个图形的驱动,另外还有linuxfb、qvfb、vnc、multiscreen、directfb等参数可供选择,具体含义博主也尚不清楚,待以后研究。
参考资料
环境变量QWS_DISPLAY
Qt4.7.0 使用电容屏
最后
以上就是义气便当为你收集整理的使mini2440的Qt程序横屏显示,-qt-gfx-transformed与QWS_DISPLAY的全部内容,希望文章能够帮你解决使mini2440的Qt程序横屏显示,-qt-gfx-transformed与QWS_DISPLAY所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复