C++ Qt-App的动态变化翻译

C++ Qt-App的动态变化翻译,c++,qt,C++,Qt,在我的应用程序中,我有几个QDialog表单。 当我安装并更改应用程序的翻译时。主窗口已受影响,但所有其他对话框均未更改为新语言。因此, 如何在runtimedynamic中更改所有表单? 请帮帮我 void MainWindow::SetUILang() { QTranslator qtTranslator; qtTranslator.load(QString("tr_fa"), "./Lang"); qApp->insta

在我的应用程序中,我有几个QDialog表单。 当我安装并更改应用程序的翻译时。主窗口已受影响,但所有其他对话框均未更改为新语言。因此, 如何在runtimedynamic中更改所有表单? 请帮帮我

    void MainWindow::SetUILang()
    {
        QTranslator qtTranslator;
        qtTranslator.load(QString("tr_fa"), "./Lang");
        qApp->installTranslator(&qtTranslator);
        ui->retranslateUi(this);

    }

如果动态更改应用程序上的语言,将发出QEvent::LanguageChange类型的changeEvent。您必须捕捉到这一点,并使用tr功能在任何地方重置文本>

void myclass::changeEvent(QEvent *event) {
    if (event->type() == QEvent::LanguageChange) {
        // Set all texts
    }
    else {
        QWidget::changeEvent(event);
    }
}

在主窗口中。当用户点击信息按钮时。创建并显示信息表单的新实例,我已经添加了changeEvent代码,但不起作用。如果在更改语言后创建新实例,所有文本都应正确翻译。你把它们和tr函数一起放在一起了吗?:是的,它是以UI设计器的形式出现的,我已经检查过可翻译性。你提供了任何翻译吗?很抱歉问了这么愚蠢的问题,但有时候很简单……不,就在那里。主窗口已成功转换,但其他窗体未成功转换:D