Qt下中文乱码问题的解决办法

转载 2013年07月27日 13:36:30

Qt在设计开始就考虑了对多语言的支持.因此对中文的支持还是比较容易.很容易编写出多语言的程序来.关于Qtopia /QT的中文支持.主要有如下情况

  1.在自己的QT程序中加入中文支持.

  2.将Qtopia 的桌面显示中文

  QT应用程序多语言支持的思路是,跟WINDOWS非常象。就是非英语的字符串不编译在程序当中。而是保存在一个字典文件里。在程序中使用是这个字典的索引。这样在不修改的程序的情况,只要换成不同的字典文件就会支持不同语言的显示。
    在WINDOWS程序中,这个字符串是资源文件(*.res),这个文件最后被链接到可执行文件当中。在程序中使用整数类型的资源ID,来从资源文件中,通过API函数LoadString()来从资源文件取出字符串。
    在QT也采用类似的流程。字符串保存在翻译文件(*.ts)当中,发布时它将会转换成二进制的 .qm文件。这个文件不需要链接可执行文件当中。程序中使用英文字符串作为字典的索引。使用tr()函数从翻译文件检索相应的字符串。

这里我只总结第一种方法。(我项目的名称为mutilDialog)

   一,首先需要手工修改pro文件.增加ts文件的选项,在pro要增加一项 TRANSLATIONS = mutilDialog.ts

   二,用QT提供的工具lupdate生成一个ts文件。在命令行输入

     lupdate mutilDialog.pro

     会自动生成一个mutilDialog.ts文件。ts文件其实就是简单的xml语言写的一个文件。

 

   三,用QT自带的工具linguist翻译mutilDialog.ts对应的词。你也可以直接打开mutilDialog.ts文件自己手动修改。

   四,用QT提供的工具将mutilDialog.ts编译成二进制的mutilDialog.qm文件。在命令行输入 lrelease mutilDialog.ts就会生成相应的文件了。

   五,在主程序中加入对Qtranslator类的支持。并且装入相应的qm文件

#include <qapplication.h>
#include <qtranslator.h>

 

int main( int argc, char ** argv )
{
    QApplication a( argc, argv );

     .......
    QTranslator translator(0);
    translator.load(QString("mutilDialog.qm"));
    a.installTranslator(&translator);    

  ................

    return a.exec();
}

相关文章推荐

Qt中文乱码问题解决办法

也许你在用这个方法实现中文化,但它确实不够严谨 #include   int main(int argc, char *argv[]) {             QApplication ap...
  • w112121
  • w112121
  • 2014年03月17日 13:48
  • 709

Qt中文乱码问题解决办法

也许你在用这个方法实现中文化,但它确实不够严谨Laguage» C++ Title» 出现频率最高的办法#include    int main(int argc, char *argv[])  { ...

Qt中文乱码问题解决办法【转】

也许你在用这个方法实现中文化,但它确实不够严谨Laguage» C++ Title» 出现频率最高的办法#include    int main(int argc, char *argv[])  { ...

Qt中文乱码问题解决办法

WOWCode的主体部分基本已经完成了,对于我自己来说,其实已经足以应付我的需要了,不过如果发布的话,实在还是拿不出手,因为很多地方还需要完善,一些对我自己来说多余的功能也没有完成,今天尝试将程序移植...

JSP中文乱码问题解决办法

  • 2012年10月31日 19:17
  • 51KB
  • 下载

Windows下Qt Creator显示中文乱码的另一种情况及解决办法

Win7 64位系统,很久以前安装了Qt5.3.1 MinGW 32bit 版本,里面是自带Creator 3.1.2的。然而一直显示中文乱码,cpp文件代码和注释中的中文全是小方框,首先怀疑是Cre...

Qt中文乱码终极解决办法

1,新建gui项目,在界面添加label ,在label中写入出现乱码的中文,如图(最好用一个特殊符号隔开) 2,清除->执行qmake->运行程序,按住Ctrl键,然后点击ui_mainwin...

Qt5.5.1中文乱码解决办法

Qt5解决中文乱码问题 Qt中文乱码 中文不显示
  • jh1513
  • jh1513
  • 2016年08月26日 21:58
  • 2452

中文乱码(编码解码)问题的解决办法【转】

中文乱码(编码解码)问题的解决办法 个人小结:中文乱码(编码解码)问题的解决办法 在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码问题以及解决方法。 ...
  • zlbvs24
  • zlbvs24
  • 2011年10月31日 12:29
  • 2458

MySQL中文乱码问题解决办法

MySQL中先直接插入char类型的字段时,记录不能为中文的,否则会提示出错信息。如下: Incorrect string value:’\xc8\xCB\xC0\xED’ for column ‘...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt下中文乱码问题的解决办法
举报原因:
原因补充:

(最多只允许输入30个字)