1,QT中如何显示中文呢?
QTextCodec*pCodec=QTextCodec::codecForName("System");//获取系统字体编码
QTextCodec::setCodecForLocale(pCodec);
QTextCodec::setCodecForCStrings(pCodec);
QTextCodec::setCodecForTr(pCodec);
如果你的操作系统当前是中文环境的话,就可以显示中文。
2,通过第1步的操作就可以在文本中显示中文了,但是还不能在内置的QMessageBox按钮上面显示中文。
该怎么办呢?
(1)从QT安装目录下面将文件“qt_zh_CN.qm”复制一份到你的项目目录下。
例如,我是从“D:\QtSDK\Desktop\Qt\4.7.3\msvc2008\translations”目录下复制的“qt_zh_CN.qm”文件。
你的项目目录指你项目的.pro文件所在的目录。
(2)在项目目录中新建一个文本文件,输入如下内容:
<RCC>
<qresource prefix="/">
<file>qt_zh_CN.qm</file>
</qresource>
</RCC>
保存后,将该文本文件的后缀名由txt改为qrc,表明这是资源文件。
(3)在Qt Creator中将上述文件加到你的项目中。
(4)修改代码如下,表示要加载相应的资源文件。
QTranslator oTranslator;
oTranslator.load(":/qt_zh_CN"); // 注意此处字符串以“:/”开头,后接的字符串是刚才复制的qm文件的名字
QApplication oApp(argc, argv);
oApp.installTranslator(&oTranslator);
(5)重新编译、运行程序即可。
============================================
运行效果如下:
后记:当时笔者希望QMessageBox的按钮能中文显示,在网上搜索发现有许多同学有相同的问题,然而网上给出的答案却要么是本文叙述的第1个问题的答案,要么就是没有说清楚。所以,专门在这里贴出来,希望能帮到大家。