如何在Qt/PyQt/PySide中找到当前的QLocale?

eri*_*ric 4 python qt locale pyqt pyside

如何找到当前有效的QLocale?我们可以找到默认的系统区域设置QLocale.system(),但是我希望找到类似QLocale.current()的区域设置,以检查我正在尝试进行的区域设置更改是否真正有效.

该文档有许多方法可用于设置区域设置或查找给定的属性QLocale.但是有一种简单的方法可以返回电流QLocale,以便我可以将这些方法应用于它(例如name())吗?

相关问题

ekh*_*oro 5

答案是简单地使用:

current_locale = QtCore.QLocale()
Run Code Online (Sandbox Code Playgroud)

这将解析为系统区域设置,除非已使用显式重新设置默认区域设置QLocale.setDefault().

因此,正常的过程是:如有必要,在QApplication创建后立即设置默认语言环境.在此之后,无论QLocale何时创建没有参数的对象,它都将解析为您最初自己设置的区域设置,或者回退到系统区域设置.

这似乎意味着最好总是构造一个新QLocale对象来获取有关语言环境的信息,而不是缓存信息以供以后重用.