下面我們實現日期時間框的添加,表示日期時間的文本框可以使用QtWidgets控件下的 QDateEdit() , QTimeEdit() , QDateTime() 三個方法實現。
1,使用QDateEdit() 我們可以得到一個只顯示日期的文本框,在文本框中我們可以手動輸入日期,也可以單擊右側的上、下按鈕設置日期。不定義默認值的話,日期文邊框的例的默認值為2000-01-01
#創建日期文本框 self.date = QtWidgets.QDateEdit(w) #調整日期文本框的位置大小 self.date.setGeometry(QtCore.QRect(150,30,160,30)) #設置日期顯示的格式 self.date.setDisplayFormat("yyyy-MM-dd")
效果圖如下
另外,我們修改顯示的默認值為當前日期,添加以下代碼
now_day = time.strftime("%Y-%m-%d",time.localtime()) self.date.setDate(QtCore.QDate.fromString(now_day, 'yyyy-MM-dd'))
效果圖如下
我們還可以使用日歷插件獲取日期,只需要將日期框的 calendarPopup 屬性值為True 即可,代碼代碼如下
self.date.setCalendarPopup(True)
效果圖如下
2,QTimeEdit() 可以創建一個時間的文本框,代碼如下
self.label1 = QtWidgets.QLabel(w) self.label1.setGeometry(QtCore.QRect(100, 60, 120, 45)) self.label1.setFont(QtGui.QFont("Roman times",14)) self.label1.setText("時間:") #創建一個時間框 self.time = QtWidgets.QTimeEdit(w) self.time.setGeometry(QtCore.QRect(150,65,160,30)) self.time.setDisplayFormat("hh:mm:ss") #獲取並定義當前時間 now_time = time.strftime("%H:%M:%S",time.localtime()) self.time.setTime(QtCore.QTime.fromString(now_time, 'hh:mm:ss'))
效果圖如下
3,上邊的設置日期和時間是分開的,操作起來會比較繁瑣,這時我們就可以使用 QDateTimeEdit() 方法了
self.label1 = QtWidgets.QLabel(w) self.label1.setGeometry(QtCore.QRect(60, 60, 120, 45)) self.label1.setFont(QtGui.QFont("Roman times",14)) self.label1.setText("日期時間:") self.time = QtWidgets.QDateTimeEdit(w) self.time.setGeometry(QtCore.QRect(150,65,160,30)) self.time.setDisplayFormat("yyyy-MM-dd hh:mm:ss") #設置使用日歷控件 self.time.setCalendarPopup(True) #獲取並定義當前時間 now_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) self.time.setDateTime(QtCore.QDateTime.fromString(now_time, 'yyyy-MM-dd hh:mm:ss'))
效果圖如下