环境介绍:
1、硬件:arm开发板
2、软件:Qt4.8.7
3、参考文章:qte交叉编译arm报错解决记录和中文乱码问题解决
问题介绍:
在arm开发板下运行Qt程序,中文显示乱码。
解决:
在main.cpp下,新增两段代码
我是在Windows下编辑Qt程序,Windows下使用的是Qt5.14.2,第2第3句在Qt5下会显示错误,不过最终是拿到Linux下使用Qt4.8.7进行编译,所以忽略就好;
# 1、指定编码
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
# 2、指定字体,字体需要自己准备,路径换成自己的
int id = QFontDatabase::addApplicationFont("/opt/qt4.8.7_armlib/lib/fonts/Microsoft-YaHei.ttf");
QString msyh = QFontDatabase::applicationFontFamilies(id).at(0);
QFont font(msyh);
a.setFont(font);
修改后如下:
结果:
编译程序、重新执行、即可;