Python QDateEdit.date().toString(“MMMM dd,yyyy”)不以英文显示月份

Python QDateEdit.date().toString(“MMMM dd,yyyy”)不以英文显示月份,python,date,pyqt,locale,qdatetime,Python,Date,Pyqt,Locale,Qdatetime,我有一个名为date的QDateEdit。无论我做什么,我都无法让它以英语显示月份,它总是以我当前的语言环境显示月份 我已经试过了: self.ui.date.setLocale(QtCore.QLocale( QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) self.ui.date.calendarWidget().setLocale(QtCore.QLocale( QtCore.QLocale.English, Q

我有一个名为date的
QDateEdit
。无论我做什么,我都无法让它以英语显示月份,它总是以我当前的语言环境显示月份

我已经试过了:

self.ui.date.setLocale(QtCore.QLocale(
    QtCore.QLocale.English, QtCore.QLocale.UnitedStates))

self.ui.date.calendarWidget().setLocale(QtCore.QLocale(
    QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
通过这样做,当我单击小部件时弹出的calendarWidget将更改为英语。但是,如果我这样做:

print ui.date.date().toString("MMMM dd, yyyy")
我仍然可以用葡萄牙语而不是英语度过这几个月。我还尝试使用python的locale模块更改区域设置,但没有产生任何结果。

使用方法

e、 g:


QDate是日期的独立于区域设置的表示形式。格式化时需要指定区域设置…

问题是我不想获取当前时间。相反,我尝试从QDataSedit小部件读取它,以便用户可以通过himself@Eduardo. 为什么要尝试操作依赖于区域设置的日期字符串?你到底想做什么?@ekhumoro这是一个记录激光生产线制造过程的软件。因此,基本上这是一个GUI,当用户要执行某些过程时,比如说在激光器上安装一个镜头,他必须将有关过程的测量和信息添加到软件中,例如日期、开始时间、结束时间、光功率等。。因此,他在QDateEdit中插入了日期。问题是报告是用英语编写的,这里的计算机在操作系统设置中有不同的语言环境。我希望它与任何计算机兼容settings@Eduardo. 这个答案似乎正符合你的要求。你真的试过吗?如果是这样的话,结果与你的预期有什么不同呢?@Ekhumaro它确实奏效了。我第一次看它的时候就误读了。我认为它是使用Locale来获取当前时间,而不是widget时间。谢谢大家使用
setLocale
将更改日期在
QDateEdit
中的显示方式。
print(QLocale(QLocale.English, QLocale.UnitedStates).toString(self.ui.date.date(), "MMMM dd, yyyy"))`