QT5:RetranslateUi不重新转换视图

时间:2015-03-06 12:02:08

标签: qt localization qt5

我尝试向应用程序添加动态本地化支持,但是在retranslateUi()上调用MainWindow时,没有任何内容被翻译。

我在首选项对话框中使用以下代码来设置要使用的本地化:

if(translator.load(QDir::toNativeSeparators("localisation/") + m_localisations.at(ui->languageOptionsBox->currentIndex()).name() + "_v1"))
    qDebug() << "Loaded translation";
else
    qDebug() << "Translation not loaded";

qApp->installTranslator(&translator);

然后在我的MainWindow课程中处理更改事件:

void MainWindow::changeEvent(QEvent *event)
{
   qDebug() << "Change event";
   if(event->type() == QEvent::LanguageChange)
   {
      qDebug() << "Language Change event";
      ui->retranslateUi(this);
   }

   QMainWindow::changeEvent(event);
}

retranslateUi()调用ui_mainwindow.h函数,但UI未使用正确的语言进行更新,根据调试语句明确加载本地化。翻译绝对有效,因为我将所选值存储为QSettings值,并在应用程序加载时检查它,重新启动应用程序确实正确翻译它,所以我假设我错过了一些东西。

0 个答案:

没有答案