赞
踩
在QT的项目文件(.pro)中加入:TRANSLATIONS = XXX.ts YYY.ts(假设是多行,则用 \ 切割)
- TRANSLATIONS = CN.ts\
- EN.ts
工具---外部---Qt语言家--更新翻译,可以获取CN.ts和EN.ts
用Qt Lingust打开EN.ts,将中文翻译成中文
然后 工具---外部---Qt语言家--发布翻译,可以获取CN.qm和EN.qm
头文件:
- QTranslator * translator;
- void changeEvent(QEvent* e);//解决下俩列表中不更新语言的问题
cpp文件:
- 构造函数中加载,这样刚启动的版本加载EN.qm,显示为英文版
- translator = new QTranslator(this);
- translator->load("EN.qm"); //加载语言包
- qApp->installTranslator(translator); //安装翻译器
-
-
- void MainWindow::changeEvent(QEvent *e)
- {
- if(e->type() == QEvent::LanguageChange)
- {
- //刷新UI
- this->ui->retranslateUi(this);
- if(!isCH)
- {
- this->ui->comboBox->setCurrentIndex(1);
- }
- }
- }
-
-
- void MainWindow::on_radioButton_clicked()
- {
- if(translator != NULL)
- {
- qApp->removeTranslator(translator);
- delete translator;
- translator = NULL;
- }
-
- translator = new QTranslator;
- if(translator->load("CN.qm"))
- {
- qApp->installTranslator(translator);
- }
- ui->retranslateUi(this);//刷新界面字符
- }
-
- void MainWindow::on_radioButton_2_clicked()
- {
- if(translator != NULL)
- {
- qApp->removeTranslator(translator);
- delete translator;
- translator = NULL;
- }
-
- translator = new QTranslator;
- if(translator->load("EN.qm"))
- {
- qApp->installTranslator(translator);
- }
- ui->retranslateUi(this);//刷新界面字符
- }
-
-
- void MainWindow::on_comboBox_activated(int index)
- {
- if(index == 1)
- {
- translator->load("EN.qm");
- qApp->installTranslator(translator);
- ui->retranslateUi(this);//刷新界面字符
- isCH = false;
- }
- else
- {
- translator->load("CN.qm");
- qApp->installTranslator(translator);
- ui->retranslateUi(this);//刷新界面字符
- isCH = true;
- }
-
- }
效果图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。