Qt5 在mainwindows类中调用QTranslator翻译无效

beijiyu00000 2014-06-18 11:05:02
1)创建好了chinese.qm,在main函数中试了,可以汉化;
2)在mianwindows类中的槽函数中调用QTranslator无效,求解释?
QTranslator* translator = new QTranslator;
QString qmFilename = arg1;
if(translator->load(qmFilename))
{
bool isOK = qApp->installTranslator(translator);
qDebug()<<"isOK = "<<isOK;
}
update();
结果输出:isOK = true
...全文
636 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
foruok 2014-06-19
  • 打赏
  • 举报
回复
Qt的SDK里带了内建组建的翻译文件,以 5.2.0为例,在这里: Qt5.2.0\5.2.0\mingw48_32\translations 你需要在切换语言时也加载相应的翻译文件。
foruok 2014-06-19
  • 打赏
  • 举报
回复
引用 8 楼 guochunfu 的回复:
[quote=引用 6 楼 foruok 的回复:] Qt的SDK里带了内建组建的翻译文件,以 5.2.0为例,在这里: Qt5.2.0\5.2.0\mingw48_32\translations 你需要在切换语言时也加载相应的翻译文件。
我的操作系统是中文的win7,所有我的QFileDialog是中文的,我如何实现能够动态的切换成英文呢?[/quote] 我的么么哒呀,给你个终极武器:使用Qt帮助的索引模式,以 "Internationalization with Qt" 为关键字检索,然后仔细阅读撒。
beijiyu00000 2014-06-19
  • 打赏
  • 举报
回复
引用 6 楼 foruok 的回复:
Qt的SDK里带了内建组建的翻译文件,以 5.2.0为例,在这里: Qt5.2.0\5.2.0\mingw48_32\translations 你需要在切换语言时也加载相应的翻译文件。
我的操作系统是中文的win7,所有我的QFileDialog是中文的,我如何实现能够动态的切换成英文呢?
beijiyu00000 2014-06-19
  • 打赏
  • 举报
回复
引用 6 楼 foruok 的回复:
Qt的SDK里带了内建组建的翻译文件,以 5.2.0为例,在这里: Qt5.2.0\5.2.0\mingw48_32\translations 你需要在切换语言时也加载相应的翻译文件。
我要同时加载两个.qm文件么?我试了加载qm_zh_CN.qm,但是我的QFileDialog没有汉化啊
foruok 2014-06-18
  • 打赏
  • 举报
回复
你可以直接在 main() 函数加载译本文件。 如果要在 MainWindow 中加载,那么需要把加载之前已经构建完的界面元素(用 tr() 处理过需要翻译的那些)重新处理一遍。即:要确定你加载译本文件的时机和需要翻译的文本被调用的时机之间的先后顺序。
beijiyu00000 2014-06-18
  • 打赏
  • 举报
回复
引用 3 楼 foruok 的回复:
比方说原来有个地方你这样写 label->setText(tr("ok")); 你换了语言,就要再这样调用一次。
我的程序中使用了FileDialog和ColorDialog,如何跟我自己设置的控件同时国际化呢?
beijiyu00000 2014-06-18
  • 打赏
  • 举报
回复
我试了,是可以,但是由于我的程序中有弹出的对话框,那这个时候应该怎么处理呢?
引用 3 楼 foruok 的回复:
比方说原来有个地方你这样写 label->setText(tr("ok")); 你换了语言,就要再这样调用一次。
foruok 2014-06-18
  • 打赏
  • 举报
回复
比方说原来有个地方你这样写 label->setText(tr("ok")); 你换了语言,就要再这样调用一次。
beijiyu00000 2014-06-18
  • 打赏
  • 举报
回复
引用 1 楼 foruok 的回复:
你可以直接在 main() 函数加载译本文件。 如果要在 MainWindow 中加载,那么需要把加载之前已经构建完的界面元素(用 tr() 处理过需要翻译的那些)重新处理一遍。即:要确定你加载译本文件的时机和需要翻译的文本被调用的时机之间的先后顺序。
因为我在Mainwindows中设置了一个可以切换语言的控件,希望可以动态的切换语言。你说的重新处理一遍是什么意思呢?

16,213

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧