2010-07-05 73 views
3

嗨,我有一个Qt应用程序,并且有几个插件附加到应用程序。在运行时更改Qt语言

我想改变运行时程序的语言,但我不知道该怎么做。

我知道我可以通过这个代码的调用做到这一点:

ui.retranslateUi(this); 

,但因为有许多插件和这些插件许多部件,这是很难写,因为这个代码成员ui在小部件中是私有的。 我不想为每个构件类编写代码。

你知道加载新翻译文件的更好方法吗?

回答

1

您可以发送QEvent::LocaleChange插件,但他们需要为它做出反应。

+0

即使他们反应我应该写一些代码Widget类。我不能从插件类调用ui.retranslateUi。 ui对于Widget类是私有的。 – ufukgun 2010-07-06 10:38:47

2

只需removeQTranslator的所有实例和install具有所需语言的新实例。 Qt会自动发送LocaleChange事件给你应用中的所有视图,甚至是你插件中的视图。没有必要手动发送这些事件。