C++ 谁发送QEvent::LocaleChange?
我熟悉Qt中的语言环境和翻译的危险。对我来说,最难理解的是本地化的工作顺序:C++ 谁发送QEvent::LocaleChange?,c++,qt,C++,Qt,我熟悉Qt中的语言环境和翻译的危险。对我来说,最难理解的是本地化的工作顺序: 区域设置(如QLocale)可以自动更改 语言(如QTranslator)可能会随着语言环境的变化而变化 因此,对于Qt来说,这意味着安装/删除QTranslators将导致类型为QEvent::LanguageChange的事件发布到QApplication实例,该实例反过来将通过所有小部件传播该事件 从QApplication源代码中,我了解到QEvent::LocaleChange类型的事件也会通过所有小部件传播
QLocale
)可以自动更改QTranslator
)可能会随着语言环境的变化而变化QTranslators
将导致类型为QEvent::LanguageChange
的事件发布到QApplication
实例,该实例反过来将通过所有小部件传播该事件
从QApplication
源代码中,我了解到QEvent::LocaleChange
类型的事件也会通过所有小部件传播。这在我看来是合理的
然而,我在Qt源代码中找不到一个地方实际发布了这种类型的事件。Qt如何,特别是在哪里对底层操作系统的语言环境变化做出反应
如何更改应用程序的区域设置?显而易见的方法似乎是使用QLocale::setDefault()
设置默认区域设置,然后手动将QEvent::LocaleChange
发布到QApplication
实例中