Qt 应用程序在ARM9板中显示中文

原文地址:http://blog.csdn.net/pk124729136/article/details/8220300

问题:把Qt应用交叉编译以后,下载到开发板。 中文字符没有显示。

系统版本如下,按照这个这个教程解决了问题。非常感谢【粒坨-康】分享。

Linux操作系统:ubuntu10.4

ARM9开发板 :IMX287A

Qt creator版本:1.3.1

--------------------------------------------------------------------------------------------------------

1、从该网址获得文泉驿字体http://font.chinaz.com/120501306950.htm

2、将“文泉驿微米黑.ttc”名改为“wenquanyi.ttf”。这里的扩展名是“.ttf

3、将修改后文泉驿字库拷贝到arm板中的qt库中的font目录下中。例如你的qt

     的font的目录路径是“opt/ruanjian/Trolltech/qt-4.6.3/lib/fonts/”,则把修改后文泉

     驿字库拷贝进去,同时在PC机上的qt库中的font目录中也相应的要加入修改后

    文泉驿字库。

4、代码编写:

      编写代码前必须设置当前文件的的编码格式。

      例如当前文件是“xx.c”或是“xx.h”,那么选定后做操如下图所示:

            

           

     这里选择的是GB2312。选择后部分代码具体编写如下:

      #include <QtGui/QApplication>

      #include "mainwindow.h"

     #include<QTextCodec>

     int main(int argc, char *argv[])

    {

        QApplication a(argc, argv,QApplication::GuiServer);

       /*

      这里的三句代码中的QTextCodec::codecForName("GB2312")必须设置成GB2312,也就

     是说必须和当前文件的编码格式一致不然显示出的中文即是乱码。且在这设置后其

     他地方就无需在设置了,但其他文件的编码格式必须保持为GB2312

     */

     QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));

     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));

     QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

     MainWindow w;

     w.setFont(QFont("wenquanyi",20,QFont::Normal)); //第一次把这句忘了,结果没有成功。

     w.setWindowTitle("显示中文");

     w.show();

     return a.exec();

   }

--------------------------------------------------------------------------------------------------------

实验结果如下:

正确情况即当前文件编码格式和代码中设置一致。

错误情况即当前文件编码格式和代码中设置不一致。

 

阅读更多
个人分类: Qt
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭