在运行时更改Qt中的语言

时间:2010-07-05 14:21:18

标签: qt translation

您好我有一个Qt应用程序,并且有几个插件附加到该应用程序。

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

我知道我可以通过调用此代码来实现:

ui.retranslateUi(this);

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

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

2 个答案:

答案 0 :(得分:2)

QTranslator只有{{1}}生效的{{1}}个实例和remove个具有所需语言的新实例。 Qt会自动将LocaleChange事件发送到您应用中的所有视图,甚至是插件中的视图。无需手动发送这些事件。

答案 1 :(得分:1)

您可以将QEvent::LocaleChange发送给插件,但他们需要对此做出反应。