qt for android中文字体显示异常解决方案
发布时间
阅读量:
阅读量
目录
前言
解决方案
更新时间2019年4月13日 09:26:03
前言
最近,我发现有些朋友遇到了一个问题,使用QT编写的程序在安卓上显示中文时出现问题,而PC端没有问题。其实,之前我也遇到过类似的问题,尝试了很多方法但都未能解决。后来,我采用了加载系统字库的方法解决了问题,但不确定是否能帮助到其他人。现在,我将这个问题记录下来,希望对有需要的朋友有所帮助。
分割线
解决方案
具体实现如下:
代码贴图:

下面这段代码请加在main.cpp 里面
int fontId = QFontDatabase::addApplicationFont("XXXXXX/DroidSansFallback.ttf");
//将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的family
QString androidFont = QFontDatabase::applicationFontFamilies(fontId).at(0);
QFont font(androidFont);
QGuiApplication::setFont(font);
AI助手
或者将资源加载到assets中,直接加载,如下:
int fontId = QFontDatabase::addApplicationFont("assets:/wqymh.ttf");
//将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的family
QStringList fontList = QFontDatabase::applicationFontFamilies(fontId);
if(fontList.isEmpty())
{
qWarning("字体加载失败");
return -1;
}
QString androidFont =fontList.at(0);
QFont font(androidFont);
QGuiApplication::setFont(font);
AI助手
其中,"XXXXXX/DroidSansFallback.ttf",其中ttf代表字库名称,xxxx表示文件放置的位置,建议将其放置在资源文件中。
好了,需要的朋友可以去试试了。
请提供各种ttf文件的下载链接:[点击打开链接()
更新时间2019年4月13日 09:26:03
在新工程中,我无意间引入了一个ttf字体文件,却遇到了令人生疑的问题。经过一番深入研究后发现,该操作返回错误码-1,这表明问题并非出在代码本身,而是路径配置上。我必须特别提醒大家,在后续操作中一定避免使用qrc:/XXXX的路径格式,而应严格按照**:/XXXXX**的规范来设置路径,以确保操作顺利进行。
全部评论 (0)
还没有任何评论哟~
