本文基于飞凌嵌入式OKMX6Q/DL-C开发板进行讲解,使用的操作系统为Linux3.0.35,其他品牌的产品请参考使用。本篇文章主要介绍如何在iMX6Q开发板上加载QT程序到主界面、开机自动启动QT应用程序、旋转QT桌面90度以及显示汉字。本文记录了一些客户常见的问题,并通过提供解决方案帮助客户加速产品开发,所提供的资料和信息仅供参考。
一、如何将QT程序加载到iMX6开发板的主界面
以下是将自己的QT程序加载到桌面主界面的方法。我们以添加music程序为例:
1、修改文件系统:
编辑 opt/qt4.8.5/demos/embedded/fluidlauncher/config.xml 文件:
打开该文件,在
<example filename="../../../apps/backlight" name="backlight test" image="screenshots/apps/backlight.png"/>
下一行添加
<example filename="../../../apps/music" name="MUSIC test" image="screenshots/apps/music.png"/>
保存修改。
2、添加应用的桌面图标:
在 opt/qt4.8.5/demos/embedded/fluidlauncher/screenshots/apps 目录中添加 music.png 图片, 以便主界面识别music程序。
3、添加可执行程序:
在 opt/qt4.8.5/apps 目录中添加自己编译的可执行文件music,并用chmod命令赋予其执行权限。
4、保存并应用:
完成以上操作后,如果是在iMX6Q开发板上操作,需执行sync命令保存并重启开发板,即可在主界面看到添加的music程序。也可以在iMX6Q用户资料的文件系统中修改,修改后重新打包并烧写到iMX6Q开发板上即可。
二、开机自动启动QT应用程序
以下方法用于设置iMX6Q开发板启动时自动运行自制应用程序。以music程序为例,假设文件位于/opt/qt4.8.5/apps路径下,实际操作请根据具体文件名和路径。
修改启动脚本:
在OKMX6平台上,Qt系统开机默认启动fluidlauncher桌面程序,若要改为启动其他Qt应用程序,请修改文件系统/etc/rc.d/apps.sh文件。如果是在iMX6Q开发板上操作,在超级终端执行以下命令:
root@freescale /$ vi /etc/rc.d/apps.sh
通过vi命令将apps.sh文件修改为以下内容:
#!/bin/sh
#app
#cd /opt/qt4.8.5/demos/embedded/fluidlauncher
#./fluidlauncher -qws &
cd /opt/qt4.8.5/apps
./music -qws &
#apps
保存文件后,执行sync命令;重启开发板即可见默认启动了设置的应用程序。也可在文件系统源码目录下修改/etc/rc.d/apps.sh文件,方法同上,然后重新制作文件系统映像并烧写到iMX6平台。
三、QT桌面旋转90度
以下方法可将屏幕上的QT桌面旋转90度、180度或270度。以旋转90度为例:
修改文件系统中的QT环境变量脚本:
root@freescale /$ vi /etc/rc.d/qt_env.sh
将 export QWS_DISPLAY="linuxfb:mmWidth50:mmHeight130:0"
修改为export QWS_DISPLAY=”Transformed:Rot90:LinuxFb:/dev/fb0”
修改完成后保存文件并执行sync命令,重启iMX6Q开发板即可;某些QT界面可能需要重新编译调整以适应旋转后的宽高等变化。也可在文件系统源码目录下修改/etc/rc.d/qt_env.sh文件, 方法同上,然后重新制作文件系统映像并烧写到平台。
四、QT程序显示汉字
若希望在QT应用界面上显示中文,可参考以下方法。要在QT应用中显示汉字,需满足两个条件。
方法1
汉字字体库
如“宋体” simsun.ttc,如果QT找不到汉字库,或展示的汉字不在QT已知的字体库中,可以使用Windows XP下的字体文件,将其从windows/fonts目录复制到QT的lib/fonts目录下(/opt/qt4.8.5/lib/fonts); 使用./test –font simsun命令即可显示字体。
汉字编码
需要将要显示的汉字编码通知QT,如果使用tr转换显示汉字,需在类的构建函数中添加:
Ui->setupUi(this);
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));//tr 使用的编码
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));//QString 使用的编码,没有这一条
//则 QString str(tr(“中文” )), 能正常显示, QString str(“中文” );会显示乱码。
需要注意的是,这两条语句的位置在构造函数中只对当前类有效,放置在main函数中无效。
这样,在该类的后续代码中使用tr转换的字符串,就会被视为utf8编码。
注:外部文件夹中有例子和字体包。
方法2
汉字字体库
如果QT找不到汉字库,或展示的汉字不在QT已知的字体库中,可以使用Windows下的字体文件,将其从c:\windows\fonts目录直接复制到QT的lib/fonts目录下(/opt/qt4.8.5/lib/fonts)。此方法需要将两个字体文件放置到fonts下。
汉字编码
需要将展示汉字的编码通知QT。在main函数中,指定程序默认字体和字体大小,并指定汉字编码为utf8格式。
指定程序全局默认显示中文字体库及字体大小。
使用QT内建的tr()转换函数,转换为上文程序默认指定的utf8编码格式,以减少乱码。
注:外部文件夹中有例子和字体包。
文章为用户上传,仅供非商业浏览。发布者:Lomu,转转请注明出处: https://www.daogebangong.com/articles/detail/fei-ling-i-MX6-xi-lie-ying-yong-bi-ji-iMX6Q-kai-fa-ban-QT-xiang-guan-ying-yong-jiang-jie.html
评论列表(196条)
测试