Qt移植字体解决方案:Android/ios/嵌入式通用
2016-12-29 15:48
886 查看
在Qt for Android开发中发现有些手机刷机后会出现字体不再是安卓默认字体DroidSansFallback,由于Qt开发的安卓应用会使用手机默认的字体,导致同一款APP现在不同手机上字体种类、大小等都不一致。因此产生统一字体,直接将字体文件加入到APP应用的想法。
该方案可以解决以下两种情况:
(1)Qt移植到移动端或嵌入式平台时出现中文乱码的情况;
(2)想把某种字体文件设置为Qt应用程序的默认字体。
以下方法本人在Qt for Android/IOS/ARM_Linux上均实测过,可以放心使用,故分享出来:
第一步:将字体文件加入到资源文件中(此处以安卓系统默认字体DroidSansFallback.ttf为例);
第二步:main.cpp中加入以下代码:
其中addApplicationFont()中加入字体文件的路径,由于已作为资源文件加入到qrc,故以:/开头表示读取qrc下的路径。若使用后发现不能产生效果,很可能是此处路径没有设置正确。
该方案可以解决以下两种情况:
(1)Qt移植到移动端或嵌入式平台时出现中文乱码的情况;
(2)想把某种字体文件设置为Qt应用程序的默认字体。
以下方法本人在Qt for Android/IOS/ARM_Linux上均实测过,可以放心使用,故分享出来:
第一步:将字体文件加入到资源文件中(此处以安卓系统默认字体DroidSansFallback.ttf为例);
第二步:main.cpp中加入以下代码:
//设置DroidSansFallback.ttf字体为程序默认字体,将字体文件打包进apk int fontId = QFontDatabase::addApplicationFont(":/demos/rssnews/content/font/DroidSansFallback.ttf"); //将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的family QString androidFont = QFontDatabase::applicationFontFamilies(fontId).at(0); QFont font(androidFont); QGuiApplication::setFont(font);
其中addApplicationFont()中加入字体文件的路径,由于已作为资源文件加入到qrc,故以:/开头表示读取qrc下的路径。若使用后发现不能产生效果,很可能是此处路径没有设置正确。
相关文章推荐
- JavaScript调用App原生代码(iOS、Android)通用解决方案 实际场景 场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功
- JavaScript调用App原生代码(iOS、Android)通用解决方案
- qt-creator在嵌入式的字体偏小的移植方法
- qt for android中文字体显示异常解决方案
- Qt移植到开发板上改变字体的大小
- 移动终端网页游戏移植研发框架【android&IOS总汇】
- 嵌入式linux、QT、ARM、android研发学习交流,软考嵌入式系统设计师交流群,欢迎大家加入,群号95388240
- Linux 下 Qt 4.6.0 嵌入式开发环境的搭建、移植 转自紫侠大哥的博文
- Qt4.8嵌入式版本的编译移植(包含QML)
- opath移植笔记: 从iOS到BlackBerry and Android,从PhoneGap 1.2到2.0.0
- 吉利吉利2/KAGeXpress 的游戏通过cocos2d-x 移植 ios/android的可行性
- QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置
- 嵌入式系统移植常见问题与解决方案备忘
- 嵌入式Qt开发环境搭建及移植到开发板----Qt学习笔记
- 基于qt的嵌入式平台输入法:SYSZUXpinyin移植到arm后,UDP接收端中文乱码 本地中文乱码 解决
- 嵌入式学习---------QT的移植及测试方法
- Linux 下 Qt 4.6.0 嵌入式开发环境的搭建、移植
- Android移植: wifi设计原理(源码分析) [嵌入式]
- Android Porting Guide for Embedded Platforms ( Android 嵌入式平台移植指南 )
- linux嵌入式qt的屏幕旋转与字体大小问题