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自带的一个字库,支持中英文。