RT Qt写的程序怎么动态切换语言?最好能提供个例子参考下 新手~~
------解决方案--------------------
- C/C++ code
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")); /* ...... */ }
------解决方案--------------------
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);
如果要实时切换,可以关闭并重新创建窗体,或者干脆重新启动进程。
------解决方案--------------------
http://www.qtcn.org/bbs/read.php?tid=10409
LS提到的一点实时切换重启窗体
------解决方案--------------------
2楼的不错。。。学习学习