在我的应用程序中,我有几个QDialog表单。
当我安装和更改我的应用程序的翻译。 MainWindow已受到影响,但所有其他对话框都没有更改为新的Language.so,
如何在运行时更改所有表格(动态)?
请帮帮我
void MainWindow::SetUILang()
{
QTranslator qtTranslator;
qtTranslator.load(QString("tr_fa"), "./Lang");
qApp->installTranslator(&qtTranslator);
ui->retranslateUi(this);
}
答案 0 :(得分:0)
如果您动态更改应用程序的语言,则会发出changeEvent
类型QEvent::LanguageChange
。你必须抓住它并在任何地方重置你的文本(使用tr
功能)>
void myclass::changeEvent(QEvent *event) {
if (event->type() == QEvent::LanguageChange) {
// Set all texts
}
else {
QWidget::changeEvent(event);
}
}