window和ubuntu上的QT中文显示正常,交叉编译arm板上debian系统中文显示不正常【已解决】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leoeitail/article/details/64122212

QT在写的界面,在window和ubuntu虚拟机上中文显示正常,但是在arm板上显示不正常。在虚拟机中的代码是这样的。

#include <QTextCodec>
.
.
.
QApplication a(argc, argv); 
QTextCodec *codec = QTextCodec::codecForName("System");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);

上述代码在arm中显示不正常,有的显示乱码,有的索性不显示。后台经过修改arm板子上已经正常,代码如下:


#include <QTextCodec>
.
.
.
QApplication a(argc, argv);
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
QFont f("unifont",16);
a.setFont(f);

经过上面的修改arm板上也正常了。

注意:
第一段代码中System表示编码格式更随系统,但我不知道怎么在arm板上就不能找到系统默认编码,难道系统没有默认的编码?以后在了解。这里改成utf-8,自己设置。
QFont f("unifont",16),这句是手动设置中文字体,和字号,unifont为QT自带的一个字库,支持中英文。


猜你喜欢

转载自blog.csdn.net/leoeitail/article/details/64122212