LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1776|回复: 4

Qt4中QApplication::translate中文转换的问题

[复制链接]
发表于 2007-4-10 16:59:17 | 显示全部楼层 |阅读模式
(SUSE Linux)在一个Qt4程序的界面设计中使用了中文标题,在ui_dialog.h有
  1. lable_1->setText(QApplication::translate("Form", "\345\234\260 \345\235\200 \357\274\232",
  2. 0, QApplication::UnicodeUTF8));
复制代码
在SUSE上显示正常,但在Fedora里面显示的中文都是方框,而且在TextEdit输入的中文也是这样。两个都是使用zh_CN_UTF-8

而Qt3的程序里的.ui/dialog.cpp如下
  1. label_1->setText( trUtf8( "\xe4\xbf\x9d\x20") );
复制代码
在两个系统里都显示正常

qt4中我没有使用the message file(.mf)。translator中的Encoding也被自动指定为UnicodeUTF8,为什么还不能显示中文?
它们又都是自动生成的,改不了
 楼主| 发表于 2007-4-11 11:41:06 | 显示全部楼层
刚发现在Qt4中同一个代码段里的
  1. Form->setWindowTitle(QApplication::translate("Form", "\347\244\272\344\276\213", 0,
  2. QApplication::UnicodeUTF8));
复制代码
在SUSE和Fedora中却都中文显示正常,更有点困惑了
回复 支持 反对

使用道具 举报

发表于 2007-4-12 08:57:58 | 显示全部楼层
int main( int argv, char **argv )
其中 argv[0] 是可执行文件的路径,不知道不同的编译器实现的会不会有不同的结果。
解析出来后保存到全局变量里面后边程序使用。
回复 支持 反对

使用道具 举报

发表于 2007-4-12 09:02:23 | 显示全部楼层
(((回错主题了:(((,顺便也回复下了:
1:最好使用翻译文件
2:如果不使用,那就自己做个编码转化方法,有非英文的地方统一调用方法转换。
3:源文件中这种用转码显示的方式根本看不懂的,不累阿,uic 转换后自己换一下中文阿。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-12 10:27:51 | 显示全部楼层
终于翻译文件也不行,同样的窗口标题翻译正确,里面各个标签等的中文还是方框,无语

Fedora上面只安装了Qt3,我也简单的拷贝了几个动态库,就在上面运行SUSE中用Qt4编写的程序,可能有点问题(相同的库都有改动)。最搞不懂的就是标题它还给我显示正确......
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表