QT4中如何显示中文?

开发基于GTK+或QT的应用程序
回复
ltyzy2000
帖子: 24
注册时间: 2007-04-04 11:00
送出感谢: 0
接收感谢: 0

QT4中如何显示中文?

#1

帖子 ltyzy2000 » 2007-10-24 16:45

正在学习QT4,想问一下如何在QT4的程序中显示中文?
alabor
帖子: 113
注册时间: 2007-03-17 13:16
送出感谢: 0
接收感谢: 0

#2

帖子 alabor » 2007-10-25 12:36

很简单,先用英文写程序,然后再加翻译文件。
zshxiong
帖子: 41
注册时间: 2007-05-31 16:17
送出感谢: 0
接收感谢: 0

QT显示中文

#3

帖子 zshxiong » 2007-10-25 21:18

#include <QTextCodec>
#include <QFont>
......
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QApplication::setFont(QFont(QObject::tr("宋体"), 10, QFont::Normal));
......

程序中有中文的地方使用 tr(" ");
ltyzy2000
帖子: 24
注册时间: 2007-04-04 11:00
送出感谢: 0
接收感谢: 0

#4

帖子 ltyzy2000 » 2007-10-30 9:46

多谢!
:P
after17
帖子: 71
注册时间: 2007-04-25 10:19
来自: EE,SCUT
送出感谢: 0
接收感谢: 0

#5

帖子 after17 » 2008-05-03 10:29

有用!
qitiandasheng7090
帖子: 1
注册时间: 2012-02-21 17:46
送出感谢: 0
接收感谢: 0

Re: QT4中如何显示中文?

#6

帖子 qitiandasheng7090 » 2012-02-21 19:41

举个例子看看!!!急用。。
头像
lexdene
帖子: 434
注册时间: 2010-02-21 16:19
来自: 大连
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: QT显示中文

#7

帖子 lexdene » 2012-02-22 9:10

zshxiong 写了:#include <QTextCodec>
#include <QFont>
......
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QApplication::setFont(QFont(QObject::tr("宋体"), 10, QFont::Normal));
......

程序中有中文的地方使用 tr(" ");

devbean大神和dbzhang800大神都曾强烈批判过这种写法,原因有三:

1、如果使用GB2312格式保存这篇代码,其他人使用UTF-8打开,那么无疑将会看见乱码。

2、如果将程序发布到一些非简体中文的国家或地区,可能出现对方的机器上根本没有安装任何中文的编码格式,那么就会出现对方无论如何都无法正确显示源代码甚至无法正确运行程序的情况。

3、Qt提供了强大的多国语言工具Qt Linguist,不用白不用。



devbean大神和dbzhang800大神的建议做法是:

1、在代码中所有需要使用中文的地方都用一段英文暂时代替,并用tr()函数做标记。

2、使用Qt Linguist对所有被tr()函数标记的字符串进行翻译,并发布翻译包。

3、在程序中加载翻译包。



详细做法,可以见devbean大神的博客:

《Qt学习之路(33): 国际化(上)》: http://devbean.blog.51cto.com/448512/244689

《Qt学习之路(34): 国际化(下) 》: http://devbean.blog.51cto.com/448512/245063



全文完。





参考资料:

《Qt国际化(源码含中文时)的点滴分析》: http://blog.csdn.net/dbzhang800/archive ... 34852.aspx
首先,个人比较抵制源码中使用中文(当然也包括用tr扩住中文了)。



《Qt中translate、tr关系 与中文问题》: http://hi.baidu.com/cyclone/blog/item/a ... 638be.html
回复

回到 “GTK+和QT”