我遇到了多语言qt(即时更改语言)的问题。我的表单有一个组合框,应该在语言改变时进行翻译。当languageChanged时,应用程序调用方法retranslateUi()来转换组合框中的项目。组合框具有对应于信号currentIndexChanged()的插槽。Qt多语言QCombobox
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(),那么广告位会再打电话。
我该如何避免这种情况?
非常感谢。我试过了,一切都很好 – PhiVH 2012-07-31 12:42:31