Qt程序怎么动态切换语言

看山不是山看水不是水 2012-03-26 09:05:25
RT Qt写的程序怎么动态切换语言?最好能提供个例子参考下 新手~~
...全文
653 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldmtn 2014-07-21
  • 打赏
  • 举报
回复
引用 6 楼 fengwanfengwan 的回复:
都写的不错。 用一个action调动2楼所写的槽函数即可。 同时,程序中凡是要显示的字符串都要用tr()函数括起来,否则Qt翻译大师不能从程序中提取需要翻译成多种语言的字符串。
恩。
pigKing10 2014-03-13
  • 打赏
  • 举报
回复
引用 2 楼 xiachm 的回复:
1. 在工程文件(.pro)里加入TRANSLATIONS标签,例如:TRANSLATIONS += myproject_zh.ts 2. 在命令行下调用: lupdate myproject.pro,生成.ts文件 3. 启动Qt Linguist进行翻译。 4. 在命令行下调用:lrelease myproject.pro,生成.qm文件 5. 在需要切换语言的地方写: QTranslator *translator = new QTranslator(this); translator->load("myproject_zh.qm"); qApp->installTranslator(translator); 如果要实时切换,可以关闭并重新创建窗体,或者干脆重新启动进程。
哪都可以看家你们帮助人家,赞
pigKing10 2014-03-13
  • 打赏
  • 举报
回复
引用 3 楼 yiyaaixuexi 的回复:
http://www.qtcn.org/bbs/read.php?tid=10409 LS提到的一点实时切换重启窗体
哪都可以看家你们,赞
  • 打赏
  • 举报
回复
谢谢 楼上各位的解答 找到了 Qt Examples and Demos --tool--Internationalizaition相类似,可以借鉴
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hemiya 的回复:]

C/C++ code

connect(langCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(changeLang(int)) ); // 载入不同的语言包
void WizarDialog::changeLang( int langIndex ) {
QTranslator *translator = new QTrans……
[/Quote]

嗯 3Q这个方法应该是在简便的,请问这个语言包是在哪里?Qt安装程序? 我用的VC+Qtaddin
noodle123 2012-03-27
  • 打赏
  • 举报
回复
看来免不了折腾“Qt翻译大师”
shen_wei 2012-03-26
  • 打赏
  • 举报
回复
2楼的不错。。。学习学习
念茜 2012-03-26
  • 打赏
  • 举报
回复
http://www.qtcn.org/bbs/read.php?tid=10409
LS提到的一点实时切换重启窗体
xiachm 2012-03-26
  • 打赏
  • 举报
回复
1. 在工程文件(.pro)里加入TRANSLATIONS标签,例如:TRANSLATIONS += myproject_zh.ts
2. 在命令行下调用: lupdate myproject.pro,生成.ts文件
3. 启动Qt Linguist进行翻译。
4. 在命令行下调用:lrelease myproject.pro,生成.qm文件
5. 在需要切换语言的地方写:
QTranslator *translator = new QTranslator(this);
translator->load("myproject_zh.qm");
qApp->installTranslator(translator);

如果要实时切换,可以关闭并重新创建窗体,或者干脆重新启动进程。
hemiya 2012-03-26
  • 打赏
  • 举报
回复

connect(langCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(changeLang(int)) ); // 载入不同的语言包
void WizarDialog::changeLang( int langIndex ) {
QTranslator *translator = new QTranslator(qApp);
switch( langCombo->currentIndex() ){
case 0:
translator->load(QString("./language/pt_BR"));
break;
case 1:
translator->load(QString("./language/en_US"));
break;
case 2:
translator->load(QString("./language/zh_CN"));
default:
break;
}
qApp->installTranslator( translator );
this->initGUI();
} // initGUI() 中会有大量的tr函数

void WizarDialog::initGUI() { this->setWindowTitle(tr("RTA04W")); /* ...... */ }
fengwanzk 2012-03-26
  • 打赏
  • 举报
回复
都写的不错。
用一个action调动2楼所写的槽函数即可。
同时,程序中凡是要显示的字符串都要用tr()函数括起来,否则Qt翻译大师不能从程序中提取需要翻译成多种语言的字符串。
bestman 2012-03-26
  • 打赏
  • 举报
回复
都不错,学习一下!

16,216

社区成员

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

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