|
本帖最后由 hepei 于 2017-2-28 16:47 编辑
1.首先肯定是要确保.qm文件的路径正确。
2.如果你的界面是用Qt designer设计的UI文件
//在MainWindow.h头文件增加:
protected:
void changeEvent(QEvent *e);
//在MainWindow.cpp中实现该函数
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent:anguageChange:
ui.retranslateUi(this);//这里实现语言翻译器的更新。
break;
default:
break;
}
}
这样应该就可以了
3.如果界面是通过代码实现的
在第2步,再自己实现retranslateUi()函数,在该函数里面,把需要进行语言切换的控件,都设置一遍
在void MainWindow::retranslateUi(QWidget *parent)
{
his_btn->setText(QApplication::translate("mainwindow", "history", 0, QApplication::UnicodeUTF8));
ngv_btn->setText(QApplication::translate("mainwindow", "navigation", 0, QApplication::UnicodeUTF8));
cur_btn->setText(QApplication::translate("mainwindow", "current", 0, QApplication::UnicodeUTF8));
cancel_btn->setText(QApplication::translate("mainwindow", "quit", 0, QApplication::UnicodeUTF8));
fault_label->setText(QApplication::translate("mainwindow", "problem:", 0, QApplication::UnicodeUTF8));
fault_status->setText(QApplication::translate("mainwindow", "no problem", 0, QApplication::UnicodeUTF8));
comm_label->setText(QApplication::translate("mainwindow", "comstate:", 0, QApplication::UnicodeUTF8));
comm_status->setText(QApplication::translate("mainwindow", "normal", 0, QApplication::UnicodeUTF8));
time_label->setText(QApplication::translate("mainwindow", "datetime:", 0, QApplication::UnicodeUTF8));
//time_status->setText(QApplication::translate("parent", "no problem", 0, QApplication::UnicodeUTF8));
}
希望能帮到你。 |
|