文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>QT正常显示中文要注意的地方

QT正常显示中文要注意的地方

时间:2009-07-14  来源:hsq863

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编译的程序,必须明确显示用的字体,和编码方式。
相关阅读 更多 +
排行榜 更多 +
盒子小镇2游戏手机版下载

盒子小镇2游戏手机版下载

冒险解谜 下载
世界盒子模组版下载最新版本

世界盒子模组版下载最新版本

模拟经营 下载
音乐搜索app最新版本下载

音乐搜索app最新版本下载

趣味娱乐 下载