系统:Fedora 9 开发板:micro2440 Qt:4.6.3 Qt库路径:/usr/local/qt463lib/lib
如果你急于在ARM开发板上看到Qt显示中文,而不介意稍次的效果,可以在运行Qt程序时,增加设置字体的参数,比如运行名为hello的Qt程序:./hello -fn unifont
1.首先,需要文泉驿字体文件,你可以从网络上下载得到这些文件,比如,wenquanyi_160_75.qpf。将全部文泉驿字体文件复制到ARM开发板上的Qt字体库中,在这个例子中,Qt字体库的路径是/usr/local/qt463lib/lib/fonts
2.你还需要增加一个ARM开发板上的环境变量,在/etc/profile文件中增加:
export QT_QWS_FONTDIR=/usr/local/qt463lib/lib/fonts
3.在main.cpp中,修改
QApplication a(argc, argv);
QTextCodec *codec = QTextCodec::codecForName("gbk");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
QFont font("wenquanyi",6);
a.setFont(font);
4.需要说明的是,QTextCodec *codec = QTextCodec::codecForName("gbk")如果不可行,你可以再试试QTextCodec *codec = QTextCodec::codecForName("UTF-8")
//===================================================================================
首先要将字体库移到对应的QT的字体库的文件夹下!比如/x86/lib/fonts、/arm/lib/fonts下,我使用的是文泉驿的字体库!
第一种方法是:需要的字体库文件,一般是多个。具体移植那一个,看你使用的字库是什么了
在程序中需要这样设置:
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
设置使用utf-8编码也就是unicode编码了,这样在tr和string的都是unicode的编码了,根据字库的索引就能对应相应的字符了。
然后设置字体:
//字体设置
QFont font("wenquanyi",12,QFont::Bold); //使用wenquanyi字体
this->setFont(font);
//这样就设置了字体了,中文一般使用wenquanyi字体就可以了。很好的。
这样的文件的修改如果在程序较大,头文件较多的程序中比较麻烦,
希望你的早点好用!!