Advertisement

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)

还没有任何评论哟~