谁发送QEvent :: LocaleChange?

时间:2017-11-18 11:18:57

标签: c++ qt

我熟悉了Qt中语言环境和翻译的危险。实际上,我最难意识到的是 order 本地化如何运作:

  1. 语言环境(如QLocale中所示)可以自发地改变,
  2. 语言(如QTranslator中所述)可能会将更改为更改为区域设置。
  3. 因此,对于Qt,这意味着安装/删除QTranslators将导致QEvent::LanguageChange类型的事件发布到QApplication实例,而后者将通过所有小部件传播它

    QApplication来源我了解到类型QEvent::LocaleChange的事件也会通过所有小部件传播。这对我来说似乎很合理。

    但是,我在Qt源中找不到一个地方,那个类型的事件实际上是发布的。 Qt如何以及特别是在哪里对底层操作系统的区域设置更改做出反应?

    如何更改应用程序的区域设置?显而易见的方法似乎是使用QLocale::setDefault()设置默认语言环境,然后手动将QEvent::LocaleChange发布到QApplication实例...

0 个答案:

没有答案