ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:1.33MB ,
资源ID:8509836      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8509836.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(QT5的ARM移植及其中文显示.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

QT5的ARM移植及其中文显示.docx

1、QT5的ARM移植及其中文显示1.1 QT5的移植1.1.1 Qwt6的配置 1.1.1.1 Win7平台的qwt插件安装qwt源码下载:因为官方的qt creator是用msvc编译的,不能识别mingw编译的qwt,所以需要将qt creator的源码用mingw编译一次。Qt creator(msvc2013版) + vs2013 + qwt的配置编译qwt库我用的qt5.4-msvc版本直接打开qwt的pro工程,编译全部,生成lib和dll文件配置(1)将qwtd.dll、qwt.dll拷贝到H:QtQt5.4.05.4msvc2013_64_openglbin下,将qwtd.lib

2、、qwt.lib拷贝H:QtQt5.4.05.4msvc2013_64_opengllib下(以qt安装目录H:QtQt5.4.05.4msvc2013_64_opengl为例)。 (2)将qwt_designer_plugin.dll和qwt_designer_plugin.lib拷贝到H:QtQt5.4.05.4msvc2013_64_openglpluginsdesigner目录下。(3)将qwtsrc目录下的所有.h和.cpp放入一个空文件夹QWT中,再将该文件夹拷贝到H:QtQt5.4.05.4msvc2013_64_openglinclude目录下。使用新建项目,然后进行配置:(1

3、)属性-配置属性-C/C+-常规,附加包含目录:$(QTDIR)includeQWT(2)属性-配置属性-链接器-输入,附加依赖项:qwtd.lib(3)属性-配置属性-C/C+-预处理器,预处理器定义:QWT_DLL1.1.1.2 Ubuntu平台的qwt插件安装GCC的qmake建立gcc版本的qmake软链接将gcc-qmake放到/usr/bin下面就可以使用gcc-qmake了。为了和ARM版本的qmake区别!删除链接那么我就可以在ubuntu下面编译qwt了。因为我用qt-creator打开qwt.pro后,builder后不知道在哪里生成了哪些东西。进入qwt-6.1.2目录只

4、好用qmake手动编译了。#gcc-qmake #make#make install就会在/usr/local下面生成安装qwt插件到ubuntu的qt-creatro中去一定要注意下面的这个路径:Qt5.5.0/Tools/QtCreator折腾了半天,就是掉了这个路径还有另外的一个路径:下面的暂时不要这么做,因为不晓得在qt-creator如何应用头文件,还是先直接引用/usr/local/qwt-6.1.2/lib + include 吧另外拷贝/usr/local/qwt-6.1.2/lib下面的4个库到相应的目录新建1个Qwt的目录,拷贝头文件到里面Qwt的交叉编译我的qt库交叉版本

5、没有使能opengl选项,所以qmake, make出现错误!找不到opengl模块配置qwt,重要的配置文件qwtconfig.pri修改qwtconfig.pri, 里面可以设置install的路径,去除需要注释如下的编译选项,编译arm qt时,没有支持opengl。#QWT_CONFIG += QwtOpenGL第二,需要注释如下的编译选项:#QWT_CONFIG += QwtDesigner同时修改安装路径为:避免和gcc版本的混淆当然需要安装到开发板上面,才能运行。1.1.1.3 Qwt的使用INCLUDEPATH += /usr/local/qwt-6.1.2/includeLI

6、BS += -L/usr/local/qwt-6.1.2/lib/ lqwt看下面:在Qt Creator的tool菜单中选择Form Editor-About Qt Designer plugins查看是否安装了libqwt_designer_plugin.so1.1.2 Qt5.5的ubuntu12.04安装#apt-get install libssl0.9.81.1.2.1 ibus安装步骤第一步:安装语言包进入 “System Settings”,找到 “Language Support” 那一项,点击进入选择 “Install/Remove Languages”, 找到 “Chin

7、ese (simplified)” 那一项,把后面到勾打上 然后点击 “Apply Changes”等待一段时间即可第二步:安装 Ibus 框架调出 terminal 终端,输入命令:sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4启动 Ibus 框架,在终端下输入命令:im-switch -s ibusPS:安装完 Ibus 框架之后,记得重启或者注销系统,要保证更改生效才行哦第三步:安装拼音引擎有很多拼音引擎可供选择,一般安装一种就够了,比如我就直接安装的第一种Ibus 拼音:sudo apt-get in

8、stall ibus-pinyinIbus 五笔:sudo apt-get install ibus-table-wubiGoogle 拼音:sudo apt-get install ibus-googlepinyinSun 拼音:sudo apt-get install ibus-sunpinyin第四步:设置 Ibus 框架在terminal 中输入命令:ibus-setup执行之后,会自动调出一个 Ibus Preference 设置框,选择上面的 “Input Method” 选择相应的中文输入方式,然后点击 “Add”注意:最好是安装什么输入法就 Add 什么输入法这里还可以设置调出

9、相应输入法到快捷键,默认的是“Ctrl+Space”好了,中文输入法已经安装完毕最后推荐一个非常好用到截图工具:KSnapshot他能让人非常随意的截图,还能设置延迟时间,用了才知道他到底有多方便安装方法:调出 terminal 输入:sudo apt-get install ksnapshot并执行,等待一段时间后便可1.1.2.2 中文输入法配置#locale a查看是否有:zh_CN.utf8/etc/profile环境变量的设置,注意是ibus系统的ibus设置位置需要支持utf-8中文环境没有试过设置中文环境很简单,需要三步。第一步,安装中文包:sudo apt-get instal

10、l language-pack-zh language-pack-zh-base第二步,配置相关环境变量:sudo vim /etc/environment在文件中增加语言和编码的设置:LANG=”zh_CN.UTF-8LANGUAGE=”zh_CN:zh:en_US:en”第三步,重新设置本地配置:sudo dpkg-reconfigure locales1.1.2.3 UI界面不更新问题Ubuntu12的gnome主题安装#apt-get install gnome-shell ,本用它解决qt-creator的ui不更新问题,结果没有作用。解决linux下的ui界面不更新的方法:项目设置

11、文件.pro内增加 UI_DIR=./UI,同时删除掉源代码目录中ui_*.h,clear all,-qmake-rebuilt all总结:导致ui_*.h文件没有更新的原因是源代码中#include ui_*.h的位置和实际生成的位置不同,引用的是老的ui_*.h,设置UI_DIR后就规定了位置于是不会出错了。确实如此:操作一次后,以后就立即生效了。新建工程的时候,会生成一个单独的build-test*目录是没有UI目录的,通过修改.pro,指定UI的头文件路径,它以后就老老实实的呆在那里了!而之前的错误是:Build-xxx目录下面有ui_xxx.h文件,test_my源目录下面也有ui

12、_xxx.h文件。导致修改ui后的ui_xxx.h文件无法引用到工程中!所以一直导致ui不变化!源码目录:Build-xxx目录:2者不同步!通过强行制定UI_DIR来解决!1.1.3 Qt5.5的交叉编译1.1.3.1 ARM平台交叉编译Qt的版本:qt5.5, 交叉工具链版本:总结:1 解压源码,配置交叉工具链编译的东西在qtbase目录下,在mkspecs下面复制linux-arm-gnueabi-g+全部为Linux-arm-qt5-notslib2 修改qmake.conf-mthumb -march=armv7-aQt5的配置和Qt4的有太多的不一样。配置选项./configure

13、 -prefix /opt/qt-5.3.2-arm -xplatform Linux-arm-qt5.3.1-notslib -release -confirm-license -opensource -no-openssl -no-qml-debug -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -qt-pcre -no-xcb -qt-xkbcommon -no-opengl -no-pch -verbose -no-kms -no-eglfs -no-icu -no-icu -no-iconv -skip qtweb

14、kit -no-gcc-sysroot -no-largefile -no-nis -nomake tools -no-compile-examples -no-c+11 -no-cups这里 ./qt55-notslib 换成绝对路径,不然它会在当前目录下生成qt55-notslib目录或者改成 ./_install目录注意:./configure命令运行完成后,它会提示“make”,”make install”命令,但是在它之前会打印很多Error,说什么找不到头文件,找不到sql等等。不管他,那些头文件,解压源码后根本没有!在这里浪费了很多的时间。1 编译makemake install

15、 就会在-prefix指定的目录下生成2 虚拟机上设置qmake arm的环境这样就可以交叉编译qt工程了。拷贝qt-arm库到开发板的rootfs文件系统,主要是这3个文件设置开发板的qt环境变量将它写成脚本, # . ./qt-board.sh 在开机启动的时候加入,就可以了!注意鼠标,键盘的变量和对应的设备节点内核默认是打开HID设备驱动的,如果找不到输入设备,看内核是否打开usb的HID支持!如何确定设备节点?插入无线鼠标、键盘到usb口,console检测到后,会打印信息出来。这个时候就可以看到。确定是哪个?一般会出现2个,有1个是正确的。#cat /dev/input/event1

16、 移动鼠标/按下键盘,有反应,打印乱码的就是它了!和Qt4不同的是,Qt5对键盘的设置是环境变量指定就行了,而Qt4还要在./configure中加入键盘,鼠标的选项来支持!问题又来了:默认Qt5的显示是看不到鼠标的?暂时打开:嵌入式linux的相关设置http:/doc.qt.io/qt-5/embedded-linux.html#configuring-for-a-specific-deviceQT_QPA_PLATFORM=linuxfb:fb=/dev/fb1specifies that the framebuffer device/dev/fb1size=x-Parameters l

17、ike the device node name can be set in the environment variablesQT_QPA_EVDEV_MOUSE_PARAMETERS,QT_QPA_EVDEV_KEYBOARD_PARAMETERSandQT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS.Additionally, the built-in input handlers can be disabled by settingQT_QPA_EGLFS_DISABLE_INPUTorQT_QPA_FB_DISABLE_INPUTto1屏幕旋转On some t

18、ouch screens the coordinates will need to be rotated. This can be enabled by settingQT_QPA_EVDEV_TOUCHSCREEN_PARAMETERStorotate=180.QT_QPA_FB_HIDECURSOR(for linuxfb) 关闭鼠标export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=rotate=180export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0,size=480x2721.1.3.2 x86平台的交叉编译#输入q

19、vfb,提示要安装包#apt-get insall 就可以了。1.1.3.3 qt的中文输入法1.1.3.4 字体转换工具Qt5.5的源码就包含这个工具Qt comes with the cross-platformmakeqpftool, included in thetoolsdirectory, which allows generation of QPF2 files from system fonts.在Linux中分别安装应用于不同平台的Qt:PC;嵌入式X86;ARM。这三者PC版、嵌入式X86版和ARM版的区别主要体现在:当configure时分别加了不同的参数,具体区别是:P

20、C平台(X11平台):在linux中全安装qt,用它编译好程序后,直接用“./”就可运行。嵌入式X86平台:带有qvfb功能,在PC机上可以模拟应用程序在arm开发板上的运行情况。用此编译好的程序,只用“./”命令不可以运行,必须加上参数 -qvfb qwsPs:嵌入式X86平台,这个是PC下的一个qtopia,他自带有个模拟器,可以模拟出arm开发板的样子出来。方便调试;ARM平台:编译好的程序,用于在arm平台上运行。Ps:ARM平台,这个主要是用来编译,因为要下载到开发板上,需要arm版的qte的库文件,编译后直接下载到开发板运行;Ps:编译x86是为了得到makeqpf,编译pc是为了

21、得到qvfb我是如何编译makeqpf的Qvfb好编译,直接在#输入qvfb,提示缺失什么,就#apt-get install就行了。问题是怎么编译embedded x86版本的? 它对应的编译器是什么?网上找不到,都是qt4的。没有办法,试试。解压qt5.5-everywhere-xxx的源码,改为qt-5.5-src-x86, qt5-x86为编译后的安装目录配置qt5.5注意:一点要有-qt-xcb插件,不然makeqpf无法运行的。我编译了2个小时,没有xcb插件!怎么搞?从来?单独的编译xcb插件,如果忘记了配置,直接进入它的目录,#make , #make install就行了。这

22、里就是xcb插件的目录,在它下面qmake,make,make install这里的gcc-qmake就是我再ubuntu下面安装的qt5.5-creator后的qmake,gcc-qmake是他的软连接设置好/etc/profile的qt-x86的LD库和插件的路径把所有用到的汉字写到一个文本文件里,在makeqpf(Qt4)里选择这个文件,生成的字体文件就很小。准备要转换的字体文件,可在C:WINDOWSFonts下找,或者去下载。这里我们是下载的wqy-zenhei.ttf。将wqy-zenhei.ttf字体文件拷贝到/usr/local/Trolltech/qt-4.7.0-x86/l

23、ib/fonts中,这样是为了在makeqpf中找到它旋转字体库的制作使用带参数的方式执行makeqpf,如./makeqpf-displayTransformed:Rot90以上指令用于制作翻转90度的字库文件,制作其它的字库文件只需将270改为90,180,0等注:在$(QTDIR)/lib/fonts/ 目录下的qpf字体文件中,文件名中带有t5,t10,t15等后缀的为旋转字体库,t5为旋转90度,t10为旋转180度,t15为旋转270度。如wenquanyi_160_50_t5.qpf1.1.3.5 Qt的中文ARM显示Qt normally usesfontconfigto pr

24、ovide access to system fonts. Iffontconfigis not available, e.g. in dedicated embedded systems where space is at a premium, Qt will fall back to using QBasicFontDatabase. In this case, Qt applications will look for fonts in Qtslib/fonts/directory. Qt will automatically detect prerendered fonts and T

25、rueType fonts.Qt的配置相关: -no-fontconfig . Do not compile FontConfig support.+ -fontconfig . Compile FontConfig support.嵌入式里面如果没有配置fontconfig,那么它就会在lib/fonts目录下面找字体,默认不配置。已经摸索出解决方案【验证不成功,返回-1】#includeintmain(intargc,char*argv)QApplicationa(argc,argv);intnIndex=QFontDatabase:addApplicationFont(./Resourc

26、es/msyh.ttf);/这里我加载返回 -1,加载qpf2的字体不成功if(nIndex!=-1)QStringListstrList(QFontDatabase:applicationFontFamilies(nIndex);if(strList.count()0)QFontfontThis(strList.at(0);fontThis.setPointSize(9);a.setFont(fontThis);.我的验证正确的过程:这样是可以显示中文的最后测试:不需要/QTextCodec:setCodecForLocale(QTextCodec:codecForName(UTF-8);也

27、可以,ui-lineEdit-setText(QString:fromLocal8Bit(我爱你我的祖国);显示乱码ui-lineEdit-setText(QObject:trUtf8(我爱你我的龚晗玥); /显示正常我用的字库为什么下载的wenquanyi字体和我自己用makeqpf制作的qpf2字体无法识别?Wqy-zenhei.ttc是从ubuntu12里面拷贝出来的。它就能识别Ubuntu下面的字体路径测试我的程序:输出它能找到的字体 注意设置font的名字要和这里的打印的全称一致!进一步的测试:直接将win7下面的ttf中文字体拷贝到arm板子的fonts下面就能识别,如上图:“LiSu”, “STLite”Qt5是有bug的,不识别Qpf字体,害我折腾了好几天!According to the documentation QPF is only supported when using the basic fontdatabase, by default linux would use the fontconfig fontdatabase.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1