Посмотрите на "Динамический перевод", http://doc.qt.io/qt-5/internationalization.html
void MyWidget::changeEvent(QEvent *event)
{
if (e->type() == QEvent::LanguageChange)
{
titleLabel->setText(tr("Document Title"));
...
okPushButton->setText(tr("&OK"));
// You could also use : retranslateUi(QWidget*);
}
else
{
QWidget::changeEvent(event);
}
}
Это будет полезно и вам: http://doc.qt.io/qt-5/qcoreapplication.html#installTranslator
Обычно, когда вы вызываете: qApp-> installTranslator (MyAppTranslator) , это создаст QEvent :: LanguageChange .
Итак, предоставьте простой QComboBox с английским / русским языком, и, когда выбранный язык изменится, вызовите qApp-> installTranslator (MyAppTranslator); . Затем убедитесь, что ваши кнопки правильно настроены в changeEvent , и все!
Надеюсь, это немного поможет!