qt5开发上位机qte编译后在arm板上运行时候中文字体显示问题。

利用资源文件
这种方式不需要进行刚才的step1操作,只需要把字体文件加入当前项目的资源文件中,然后直接导入资源文件,进行字体设置(如何新建资源文件这里不赘述了,百度很多教程)
在这里插入图片描述

右击资源文件,选择复制path

在main.cpp中添加代码

//获取自己想要的字体
   int fontId = QFontDatabase::addApplicationFont(":/resources/DroidSansFallback.ttf");//自己复制的字体资源路径
   //将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的family
   QString androidFont = QFontDatabase::applicationFontFamilies(fontId).at(0);
   QFont font(androidFont);
   QGuiApplication::setFont(font);

虽然成功了,但是还是觉得很麻烦,如果项目中为了美观使用多种字体,在main.cpp中设置就不合理了,需要在具体的地方具体设置,脑补一下,好麻烦。。。
所以继续偷懒
1.新建一个类MyFont
2.在类中写两个方法,用来获取QFont
MyFont.h

#ifndef MYFONT_H
#define MYFONT_H
#include

class MyFont
{
public:
MyFont();
QFont getFont(const QString path);
QFont getFont(const QString path,const int size);

};

#endif // MYFONT_H

MyFont.cpp

QFont MyFont::getFont(const QString path){
//设置DroidSansFallback.ttf字体为程序默认字体,将字体文件打包进apk
int fontId = QFontDatabase::addApplicationFont(path);
if(fontId !=-1){
//将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的family
QString androidFont = QFontDatabase::applicationFontFamilies(fontId).at(0);
QFont font(androidFont);
// m_font = font;
return font;
}
qDebug()<<“the path is ERROR!”;
}

QFont MyFont::getFont(const QString path, const int size){
//设置DroidSansFallback.ttf字体为程序默认字体,将字体文件打包进apk
int fontId = QFontDatabase::addApplicationFont(path);
if(fontId !=-1){
//将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的family
QString androidFont = QFontDatabase::applicationFontFamilies(fontId).at(0);
QFont font(androidFont,size);
// m_font = font;
return font;
}
qDebug()<<“the path is ERROR!”;
}

其实写一个方法
QFont getFont(const QString path);封装代码用来获取字体就够了,但是本人懒癌患者,所以又加了一个QFont getFont(const QString path,const int size);方法,有时候需要设置size的时候就一起设置了,方便-.-

参数path是从qrc资源中copy的字体文件路径。
使用的时候只需要调用一下方法就行

MyFont myfont;

ui->label_1->setText("示按钮是否");
QFont font = myfont.getFont(":/resources/DroidSansFallback.ttf");
font.setPointSize(30);
ui->label_1->setFont(font);
ui->label_1->adjustSize();

QFont font2 = myfont.getFont(":/resources/STXINGKA.TTF",20);
ui->label_2->setFont(font2);
ui->label_2->setText("定的文件加载字");
ui->label_2->adjustSize();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值