这个问题解决了``
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
if(QLocale::system().name()!="zh_CN"){
qDebug() << translator.load("./myI18N_US_EN");
a.installTranslator(&translator);
}
a.setStyle("Fusion");
MainWindow w;
w.translator = &translator;
w.show();
return a.exec();
}
在main.cpp中声明QTranslator
在MainWindow.h文件中声明
public QTranslator* translator; //翻译器
然后在讲main.cpp中QTranslator 的传入MainWindow
然后在槽中使用
void MainWindow::on_actionLanguage_triggered()
{
if(ui->actionLanguage->isChecked()){
translator->load("./myI18N_US_EN.qm");
qApp->installTranslator(translator);
ui->retranslateUi(this);
}else{
qApp->removeTranslator(translator);
ui->retranslateUi(this);
}
}