现在的位置: 首页 > 综合 > 正文

QT中文显示解决

2014年01月12日 ⁄ 综合 ⁄ 共 814字 ⁄ 字号 评论关闭

    整整耗费了我两天时间呀,此时终于把温泉字体显示出来了,弯路走了不少!

首先说现象:

   1 、有显示,显示方块或乱码,不是汉字;

     2、没有显示,即白屏

第一种:出现这种现象的原因可能是编码方式有问题

    QApplication app(argc, argv);
   QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
   QFont font("wenquanyi",9);
   app.setFont(font);

在XP下,也就是你在XP下输入的汉字,这时codecForName里为GBK,gb18030,gb2312,big5

如果是在linux环境下,大部分都以utf8的方式编码的。

第二种:出现这种现象的原因在于你的字体库安装的是否正确

编译时字库的路径,必须和实际运行时路径一致。而且字库里的文件也要相同

举个例子:我虚拟机上QtEmbedded的字库安装路径是/usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib/fonts

                 那么在开发板上也应该时上面那个路径。而且字库文件要一直

比如我要显示文泉驿字体,就可到qtopia源文件中的lib/fonts目录拷贝文泉驿字体到上面两个路径中,然后make 编译应用程序,下载到开发板即可运行。我出情况的原因是只拷贝到开发板的路径中,没拷贝字库虚拟机QTE的安装目录,一直无显示。

          有时你会发现X11编译的程序,可以正常显示中文。但是用qtopia-core重新编译一次,确显示不了。因为X11有默认的字体,只要设置了正确的utf8的编码方式,不设置字体也可以正常显示(在编码是UTF8的LINUX下)。(我怀疑QT默认的编码方式是Latin1,待验证)。但是,qtopia-core编译的程序,必须明确显示用的字体,和编码方式。

 

 

【上篇】
【下篇】

抱歉!评论已关闭.