如何找到当前活动的QLocale?我们可以使用QLocale.system()找到默认的系统区域设置,但我希望类似于QLocale.current()这样的东西来检查我试图进行的区域设置更改是否实际有效。
文献资料有许多用于设置区域设置或查找给定QLocale属性的方法。但是,是否有一个简单的方法来返回当前的QLocale,这样我就可以将这些方法应用于它(例如,name())?
相关问题
发布于 2015-01-27 19:33:59
答案是简单地使用:
current_locale = QtCore.QLocale()这将解析为系统区域设置,除非使用QLocale.setDefault()显式地重新设置默认区域设置。
因此,通常的过程是:如果有必要,在创建QApplication之后立即设置默认的区域设置。在此之后,每当创建没有参数的QLocale对象时,它将解析为您最初设置的区域设置,或者返回到系统区域设置。
这似乎意味着,最好总是构造一个新的QLocale对象来获取有关区域设置的信息,而不是缓存信息供以后重用。
发布于 2017-06-30 21:51:18
您可以通过获取类的实例来找到当前的区域设置:
curr_locale = QLocale()然后获取当前的区域设置信息,例如:
print(curr_locale.nativeCountryName(), curr_locale.name(), curr_locale.nativeLanguageName())如果您想更改当前的区域设置,例如:
QLocale.setDefault(QLocale(QLocale.Portuguese, QLocale.Brazil))有关更多方法,请参见QLocale文档。
https://stackoverflow.com/questions/28161888
复制相似问题