如何在 Qt/PyQt/PySide 中找到当前 QLocale?
How to find current QLocale in Qt/PyQt/PySide?
如何找到当前活动的 QLocale
?我们可以使用 QLocale.system()
找到默认系统区域设置,但我想要类似 QLocale.current()
的东西来检查我尝试进行的区域设置更改是否真的有效。
The documentation 有很多设置语言环境或查找给定 QLocale
属性的方法。但是是否有一个简单的方法来 return 当前 QLocale
,以便我可以将这些方法应用于它(例如,name()
)?
相关问题
- How to get current application language
- How to force QLocale::system to change
答案是简单地使用:
current_locale = QtCore.QLocale()
这将解析为 系统 语言环境,除非已使用 QLocale.setDefault()
.
显式重新设置默认语言环境
所以正常的过程是:如有必要,在创建 QApplication
后立即设置默认语言环境。之后,任何时候创建不带参数的 QLocale
对象时,它都会解析为您最初设置的语言环境,或者退回到系统语言环境。
这似乎意味着最好始终构造一个新的 QLocale
对象来获取有关语言环境的信息,而不是缓存信息供以后重新使用。
您可以通过获取 class:
的实例来查找当前语言环境
curr_locale = QLocale()
然后获取当前地区信息,例如:
print(curr_locale.nativeCountryName(), curr_locale.name(), curr_locale.nativeLanguageName())
如果您想更改当前的语言环境,例如:
QLocale.setDefault(QLocale(QLocale.Portuguese, QLocale.Brazil))
更多方法见QLocale documentation。
如何找到当前活动的 QLocale
?我们可以使用 QLocale.system()
找到默认系统区域设置,但我想要类似 QLocale.current()
的东西来检查我尝试进行的区域设置更改是否真的有效。
The documentation 有很多设置语言环境或查找给定 QLocale
属性的方法。但是是否有一个简单的方法来 return 当前 QLocale
,以便我可以将这些方法应用于它(例如,name()
)?
相关问题
- How to get current application language
- How to force QLocale::system to change
答案是简单地使用:
current_locale = QtCore.QLocale()
这将解析为 系统 语言环境,除非已使用 QLocale.setDefault()
.
所以正常的过程是:如有必要,在创建 QApplication
后立即设置默认语言环境。之后,任何时候创建不带参数的 QLocale
对象时,它都会解析为您最初设置的语言环境,或者退回到系统语言环境。
这似乎意味着最好始终构造一个新的 QLocale
对象来获取有关语言环境的信息,而不是缓存信息供以后重新使用。
您可以通过获取 class:
的实例来查找当前语言环境curr_locale = QLocale()
然后获取当前地区信息,例如:
print(curr_locale.nativeCountryName(), curr_locale.name(), curr_locale.nativeLanguageName())
如果您想更改当前的语言环境,例如:
QLocale.setDefault(QLocale(QLocale.Portuguese, QLocale.Brazil))
更多方法见QLocale documentation。