2017-08-14 238 views
3

我有一個叫做日期的QDateEdit。無論我做什麼,我都無法使其顯示英文的月份,它總是以我當前的語言環境顯示它們。QDateEdit.date()。toString(「MMMM dd,yyyy」)不會顯示英文月份

我已經嘗試過:

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)) 

通過這樣做,當我點擊widget改爲英語彈出式的calendarWidget。但是,如果我這樣做:

print ui.date.date().toString("MMMM dd, yyyy") 

我仍然用葡萄牙語而不是英語獲得月份。我也嘗試用python的語言環境模塊來改變語言環境,但是它沒有產生任何結果。

+0

使用'setLocale'將更改'QDateEdit'中*日期*的顯示方式。 – ekhumoro

回答

3

使用QLocale.toString方法

e.g:

print(QLocale(QLocale.English, QLocale.UnitedStates).toString(self.ui.date.date(), "MMMM dd, yyyy"))` 

QDATE是日期的語言環境無關的表示。您需要在格式化時指定語言環境...

+0

問題是我不想獲得當前時間。相反,我試圖從QDataEdit小部件中讀取它,以便用戶可以自己插入數據 – Eduardo

+1

@Eduardo。你爲什麼要操縱* locale-dependent *日期字符串?你究竟在做什麼? – ekhumoro

+0

@ekhumoro它是一個記錄激光生產線製造過程的軟件。所以基本上這是一個圖形用戶界面,當用戶要執行某個過程時,比如說在激光器上附加一個鏡頭,他必須在軟件中添加關於該過程的測量和信息,例如,日期,開始時間,結束時間,光功率等。因此他將日期插入到QDateEdit中。問題是報告是用英文製作的,這裏的電腦在他們的操作系統設置中有不同的區域設置。我希望它符合任何計算機設置 – Eduardo

相關問題