У меня проблема с мультиязычностью qt (изменение языка на лету). В моей форме есть поле со списком, которое должно быть переведено при смене языка. Когда languageChanged, метод вызова приложения retranslateUi() для перевода элемента в поле со списком. В поле со списком есть слот, соответствующий сигналу currentIndexChanged().
void on_comboBox_currentIndexChanged(int index)
{
//do something
}
Но когда вызывается метод retranslateUi(), я делаю так:
void retranslateUi()
{
ui->comboBox->clear();
ui->comboBox->insertItems(0, QStringList()
<< QApplication::translate("SettingDialog", "English", 0, QApplication::UnicodeUTF8)
<< QApplication::translate("SettingDialog", "French", 0, QApplication::UnicodeUTF8)
);
}
Проблема в том, что каждый оператор в retranslateUi() будет выдавать сигнал currentIndexChanged(), после чего слот будет вызываться снова.
Как я могу этого избежать?