• 4550阅读
  • 5回复

[提问]OK,Cancel按钮为什么没变成中文 [复制链接]

上一主题 下一主题
离线jacktiger
 
只看楼主 倒序阅读 楼主  发表于: 2009-06-05
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
写了一个简单的登录界面,按网上说的把qt_zh_CN.ts用Linguist另外发布为qt_zh_CN.qm,把qm文件加入project运行,结果登录窗口的OK.Cancel按钮还是英文!
Linguist打开qt_zh_CN.ts文件发现已经翻译好了,所以就没有修改直接用了。
环境是windows X86版本,大家觉得可能原因是什么呢?

#include <QtGui/QApplication>
#include <QTranslator>
#include <QTextCodec>
#include "loginFrm.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTranslator translator;
    translator.load( "qt_zh_CN.qm", "." );
    a.installTranslator( &translator );
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
    LoginFrm w;
    w.show();
    return a.exec();
}
离线duduqq

只看该作者 1楼 发表于: 2009-06-05
load的时候用绝对路径试试,要不就用QCoreApplication::applicationDirPath() + "/qt_zh_CN.qm"
离线jacktiger
只看该作者 2楼 发表于: 2009-06-08
楼上,你的建议不行。还是英文按钮啊。
离线earctan

只看该作者 3楼 发表于: 2009-06-08
tr 有这种用法
QMainWindow::tr("要写的文字");
可以指定tr的上下文
如果没有指定上下文的话,就默认为当前指针了。如果是在Main函数里面,就是认为是QObject作为上下文。

因为你用的是Qt自带的翻译文件,大概是上下文不对造成的。
你还是不厌其烦的翻译一下吧。
离线jacktiger
只看该作者 4楼 发表于: 2009-06-09
你的意思是不能用QT自带的qt_zh_CN.ts,而是要自己写一个ts文件来使用?
但这样的话系统自带的对话框肯定是用不成了,只能自己加pushbutton进行翻译了。
离线6美芝
只看该作者 5楼 发表于: 2009-06-11
小顶一下!黎明时总会想起你
小顶一下
看帖是缘
回贴是礼貌!
世态炎凉鸡最懂,
情冷暖鸭先知!
不管如何,
做人要厚道!
.  .. .. . .. . . . . . . . . .
黎明时总会想起你,
因为你又出现在我的梦境如行车
黎明时总会想起你,
因为又是思念把我催醒。
黎明时总会想起你,
因为一睁开眼,
又要面对你不在身边的孤零。
黎明时总会想起你,
因为...我爱你....  .. .. . .. . . . . . . . . .
我为你倾注了太多感情!

昨天朋友说这笑话给我,我觉得好就发给大家看下啊是不是让人感觉一中悬臂吊的感觉,喝杯纯水机器,水不多了,用自吸泵搞点水哦,朋友说,走去上分起,偶说上不起分啊,那还是研磨机好了,走,行车陆游拉.ha 人才 FA防身去了啊
快速回复
限100 字节
 
上一个 下一个