Динамическое изменение перевода Qt App - PullRequest
0 голосов
/ 30 ноября 2011

В моем приложении у меня есть несколько форм QDialog.когда я устанавливаю и изменяю перевод моего приложения.MainWindow был затронут, но все другие диалоги не изменились на новый Language.soКак я могу изменить все формы Lang во время выполнения (динамический)?Пожалуйста, помогите мне

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

    }

1 Ответ

0 голосов
/ 30 ноября 2011

Если вы динамически меняете язык в приложении, выдается changeEvent типа QEvent::LanguageChange.Вам придется поймать это и сбросить текст везде (используя функцию tr)>

void myclass::changeEvent(QEvent *event) {
    if (event->type() == QEvent::LanguageChange) {
        // Set all texts
    }
    else {
        QWidget::changeEvent(event);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...