您的位置:首页 > 移动开发 > Android开发

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中加入以下代码:

//设置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下的路径。若使用后发现不能产生效果,很可能是此处路径没有设置正确。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐