Chinaunix首页 | 论坛 | 博客
  • 博客访问: 720790
  • 博文数量: 118
  • 博客积分: 1437
  • 博客等级: 上尉
  • 技术积分: 1155
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-22 20:23
文章分类

全部博文(118)

文章存档

2022年(32)

2017年(3)

2014年(4)

2013年(1)

2011年(2)

2010年(16)

2009年(60)

我的朋友

分类: LINUX

2009-07-14 16:59:48

QT是跨平台的,我的工作环境,有三个qmake,分别是X11,qtopia-core,qtopia-core-arm。X11用来编译PC可执行的QT程序,qtopia-core编译的程序可在电脑的qvfb中仿真ARM上显示效果,qtopia-core-arm只可以在arm开发板上运行。
正常显示中文总是遇到问题,花了一阵子搞明白了。
有两种方法正常显示中文,其实都不难。

1.用到的字符串都用英文表示,然后利用国际化翻译软件Linguist处理,添加*.qm文件,具体见以前的帖子。粗略理解,这种方法的可移植性好,国际化也比较方便,只要添加不同的*.qm字体文件就好了。

2.用到的字符串直接用中文表示。这时要重点注意编码和字体,经常会出错。linux系统下大多都是utf8编码方式,如果自己的系统不是,就显示不正常,

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

可以将utf8换成自己系统的编码方式,例如,XP下一般是gb18030,gb2312,big5或者GBK等等很多。
如果QT界面显示的全是乱码,那么这时应该就是编码的问题。
如果QT界面显示的全是空白,那么这时应该就是字体的问题。
qtopia中可用的字体有限,在qtopia/lib/font里包含了所有可用的字体,可以显示中文的有unifont(只有一种大小),文泉驿(可选择的大小比较多)。

app.setFont(QFont("wenquanyi", 12, 50));

有时你会发现X11编译的程序,可以正常显示中文。但是用qtopia-core重新编译一次,确显示不了。因为X11有默认的字体,只要设置了正确的utf8的编码方式,不设置字体也可以正常显示(在编码是UTF8的LINUX下)。(我怀疑QT默认的编码方式是Latin1,待验证)。但是,qtopia-core编译的程序,必须明确显示用的字体,和编码方式。
阅读(2118) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2011-03-29 16:19:56

版主和楼上的大哥,我也遇到了在pc机下可以显示,下到开发板上就显示空白。望楼主给分析分析。 不知楼上的大哥把问题解决了没?

chinaunix网友2010-06-22 11:25:10

兄弟,我也出现了类似你的问题,在pc机下可以正常显示中文,但是移到arm上就显示方框了,您看是什么地方出了问题。