Qt App的动态变化翻译

时间:2011-11-30 05:03:29

标签: c++ qt

在我的应用程序中,我有几个QDialog表单。
当我安装和更改我的应用程序的翻译。 MainWindow已受到影响,但所有其他对话框都没有更改为新的Language.so,
如何在运行时更改所有表格(动态)?
请帮帮我

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

    }

1 个答案:

答案 0 :(得分:0)

如果您动态更改应用程序的语言,则会发出changeEvent类型QEvent::LanguageChange。你必须抓住它并在任何地方重置你的文本(使用tr功能)>

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