• 5981阅读
  • 4回复

[提问]Qt中文问题 [复制链接]

上一主题 下一主题
离线shengsonghan
 

只看楼主 倒序阅读 楼主  发表于: 2008-01-08
Qt中文问题
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
QString 当中含有中文 怎么能转换成 std::string 让中文显示正确
谢谢了
离线youngst

只看该作者 1楼 发表于: 2008-01-08
char Str[10];

QTextCodec *textcod = QTextCodec::codecForName("GB18030");
        QCString string1 = textcod ->fromUnicode(qstring);//qstring是 你的中文Qstring
        strcpy(Str,string1);
你自己把char 转成std:string 吧
离线shengsonghan

只看该作者 2楼 发表于: 2008-02-28
再补充一点
就是Qt部署的时候需要加载codec 的 plugin
需要设定一下路径QCoreApplication::addLibraryPath(path)
离线cxxidian
只看该作者 3楼 发表于: 2008-04-06
基本原理:
为了在使用多语言,必须做两件事情:
1,把想要翻译的字符串放入tr()中,如 QString str=tr("Legal");
2, 在开始的时候载入预先制作好的翻译文件(.qm)。
以下利用Qt提供的工具,把翻译文件制作出来,并在程序中加载。

实践步骤:
1,在Qt工程文件MyApp.pro中添加一行:TRANSLATIONS=Language_Chn.ts
    (其中,"Language_Chn"可被你所喜爱的任何名字取代)
2. 执行  lupdate  MyApp.pro
    (这时,Language_Chn.ts中内容更新了,被tr()标注的字符串被提取出来了)
3 ,  执行 linguist    Language_Chn.ts ,进行编辑,对提取的每个串进行翻译,也就是键入对应字串。在左边面板中列出所有可供翻译的字串,单击之,右边编辑区会显示出来。例如,
  source text :  Save as 
  这时,键入你期望的翻译字符
  Translation : 另存为
  每一项翻译以后,按"Done and Next"按钮确认,如此,直到左边面板中列出所有可供翻译的字串前都被打上“对勾”,说明没有问题了,用"&"定义的快捷键,也需要对应。要不然会显示”问号,感叹号“这说明这做的翻译有问题,需要修改。
4, 在“File”菜单下,单击"Release"项,这会生成我们需要的.qm文件,本例中为Language_Chn.qm
5, 在程序中使用Language_Chn.qm,进行翻译
  QTranslator  translator;
  translator.load("Language_Chn");
  app.installTranslator(&translator);
重新编译后,执行,英文界面变为中文的了。
离线wangbenqq

只看该作者 4楼 发表于: 2008-04-07
用 designer设计出来的中文显示是正确的,因为QT使用的编码方式不一样,都得转换的。最简单的方法就是用designer设计出来,形成的ui文件,你就可以看到你要写的中文所对应的编码是什么了,直接用编码就好!
快速回复
限100 字节
 
上一个 下一个