您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么在python中使用QDateTimeEdit日期時間控件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
QDateTimeEdit是一個允許用戶編輯日期時間的控件,可以使用鍵盤上的上下鍵頭按鈕來增加或減少日期的時間值,QDateTimeEdit通過setDisplayFormat()函數來設置顯示的日期時間格式
方法 | 描述 |
---|---|
setDisplayFormat | 設置日期的時間格式 |
yyyy:代表年份,用4為數表示 | |
MM:代表月份,取值范圍01-12 | |
dd:代表日,取值范圍01-31 | |
HH:代表小時,取值范圍00-23 | |
mm:代表分鐘,取值范圍00-59 | |
ss:代表秒,取值范圍00-59 | |
setMinimumDate() | 設置控件的最小日期 |
setMaximumDate() | 設置控件的最大日期 |
time() | 返回編輯的時間 |
date() | 返回編輯的日期 |
import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import QDate, QDateTime , QTime class DateTimeEditDemo(QWidget): def __init__(self): super(DateTimeEditDemo, self).__init__() self.initUI() def initUI(self): #設置窗口的標題與初始大小 self.setWindowTitle('QDateTimeEdit例子') self.resize(300, 90) #垂直布局 vlayout = QVBoxLayout() #實例化編輯時間日期的控件 #默認下,不指定日期的時間,系統會設置一個和本地相同的日期時間格式,時間默認2000年1月1日0時0分0秒 dateTimeEdit = QDateTimeEdit(self) #指定當前日期時間為控件的日期時間 dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime(), self) #指定當前地日期為控件的日期,注意沒有指定時間 dateEdit = QDateTimeEdit(QDate.currentDate(), self) #指定當前地時間為控件的時間,注意沒有指定日期 timeEdit = QDateTimeEdit(QTime.currentTime(), self) # 設置日期時間格式,可以選擇/ . : -等符號自定義數據連接符 dateTimeEdit.setDisplayFormat("yyyy-MM-dd HH:mm:ss") dateTimeEdit2.setDisplayFormat("yyyy/MM/dd HH-mm-ss") dateEdit.setDisplayFormat("yyyy.MM.dd") timeEdit.setDisplayFormat("HH:mm:ss") #布局控件添加,設置主窗口的布局 vlayout.addWidget( dateTimeEdit ) vlayout.addWidget( dateTimeEdit2) vlayout.addWidget( dateEdit ) vlayout.addWidget( timeEdit ) self.setLayout(vlayout) if __name__ == '__main__': app = QApplication(sys.argv) demo = DateTimeEditDemo() demo.show() sys.exit(app.exec_())
在默認情況下,如果QDateTimeEdit類構造時不指定日期時間,那么系統會為其設置一個和本地相同的日期時間格式,并且值為2000年1月1日0時0分0秒,也可以手動指定控件顯示的日期時間
#默認下,不指定日期的時間,系統會設置一個和本地相同的日期時間格式,時間默認2000年1月1日0時0分0秒 dateTimeEdit = QDateTimeEdit(self) #指定當前日期時間為控件的日期時間 dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime(), self) #指定當前地日期為控件的日期,注意沒有指定時間 dateEdit = QDateTimeEdit(QDate.currentDate(), self) #指定當前地時間為控件的時間,注意沒有指定日期 timeEdit = QDateTimeEdit(QTime.currentTime(), self)
效果如下圖
設置日期時間格式,如果不想使用系統默認的格式,可以通過setDisplayFormat()來定義日期時間格式
# 設置日期時間格式,可以選擇/ . : -等符號自定義數據連接符 dateTimeEdit.setDisplayFormat("yyyy-MM-dd HH:mm:ss") dateTimeEdit2.setDisplayFormat("yyyy/MM/dd HH-mm-ss") dateEdit.setDisplayFormat("yyyy.MM.dd") timeEdit.setDisplayFormat("HH:mm:ss")
顯示效果如圖
import sys from PyQt5.QtCore import QDate,QDateTime,QTime from PyQt5.QtWidgets import * from PyQt5.QtGui import * class DateTimeEditDemo(QWidget): def __init__(self): super(DateTimeEditDemo, self).__init__() self.initUI() def initUI(self): #設置標題與初始大小 self.setWindowTitle('QDateTimeEdit 例子') self.resize(300,90) #垂直布局 layout=QVBoxLayout() #創建日期時間空間,并把當前日期時間賦值,。并修改顯示格式 self.dateEdit=QDateTimeEdit(QDateTime.currentDateTime(),self) self.dateEdit.setDisplayFormat('yyyy-MM-dd HH:mm:ss') #設置日期最大值與最小值,在當前日期的基礎上,后一年與前一年 self.dateEdit.setMinimumDate(QDate.currentDate().addDays(-365)) self.dateEdit.setMaximumDate(QDate.currentDate().addDays(365)) #設置日歷控件允許彈出 self.dateEdit.setCalendarPopup(True) #當日期改變時觸發槽函數 self.dateEdit.dateChanged.connect(self.onDateChanged) #當日期時間改變時觸發槽函數 self.dateEdit.dateTimeChanged.connect(self.onDateTimeChanged) #當時間改變時觸發槽函數 self.dateEdit.timeChanged.connect(self.onTimeChanged) #創建按鈕并綁定一個自定義槽函數 self.btn=QPushButton('獲得日期和時間') self.btn.clicked.connect(self.onButtonClick) #布局控件的加載與設置 layout.addWidget(self.dateEdit) layout.addWidget(self.btn) self.setLayout(layout) #日期發生改變時執行 def onDateChanged(self,date): #輸出改變的日期 print(date) #無論是日期還是時間改變都執行 def onDateTimeChanged(self,dateTime): #輸出改變的日期時間 print(dateTime) #時間發生改變執行 def onTimeChanged(self,time): #輸出改變的時間 print(time) def onButtonClick(self): dateTime=self.dateEdit.dateTime() #最大日期 maxDate=self.dateEdit.maximumDate() #最大日期時間 maxDateTime=self.dateEdit.maximumDateTime() #最大時間 maxTime=self.dateEdit.maximumTime() #最小日期 minDate = self.dateEdit.minimumDate() #最小日期時間 minDateTime=self.dateEdit.minimumDateTime() #最小時間 minTime=self.dateEdit.minimumTime() print('\n選擇時間日期') print('日期時間=%s' %str(dateTime)) print('最大日期=%s'%str(maxDate)) print('最大日期時間=%s'%str(maxDateTime)) print('最大時間=%s'%str(maxTime)) print('最小日期=%s'%str(minDate)) print('最小日期時間=%s'%str(minDateTime)) print('最小時間=%s'%str(minTime)) if __name__ == '__main__': app=QApplication(sys.argv) demo=DateTimeEditDemo() demo.show() sys.exit(app.exec_())
效果圖如下
QDateEdit和QTimeEdit均繼承自QDateTimeEdit類,他們的許多特性和功能都有QDateTimeEdit類提供,設置格式是要注意:
QDateEdit用來編輯控件的日期,年月日
QTimeEdit用來編輯控件的時間,時分秒
如果要同時操作日期時間,請使用QDateTimeEdit
設置彈出日歷時要注意:用來彈出日歷的類只有QDateTimeEdit和QDateEdit,而QTimeEdit類雖然在語法上可以設置彈出日歷,但是不起作用………………
#設置日歷控件允許彈出 self.dateEdit.setCalendarPopup(True)
設置日期時間范圍,設置日期時間為今天,日歷游戲范圍為:【今天-365,今天+365】
#設置日期最大值與最小值,在當前日期的基礎上,后一年與前一年 self.dateEdit.setMinimumDate(QDate.currentDate().addDays(-365)) self.dateEdit.setMaximumDate(QDate.currentDate().addDays(365))
可以通過date(),datetime()等方法來獲取日期時間對象,如果要獲取年月日等信息,則可以調用QDate的year(),month(),day()等函數
dateTime=self.dateEdit.dateTime() #最大日期 maxDate=self.dateEdit.maximumDate() #最大日期時間 maxDateTime=self.dateEdit.maximumDateTime() #最大時間 maxTime=self.dateEdit.maximumTime() #最小日期 minDate = self.dateEdit.minimumDate() #最小日期時間 minDateTime=self.dateEdit.minimumDateTime() #最小時間 minTime=self.dateEdit.minimumTime() print('\n選擇時間日期') print('日期時間=%s' %str(dateTime)) print('最大日期=%s'%str(maxDate)) print('最大日期時間=%s'%str(maxDateTime)) print('最大時間=%s'%str(maxTime)) print('最小日期=%'%str(minDate)) print('最小日期時間=%s'%str(minDateTime)) print('最小時間=%s'%str(minTime))
QDateTimeEdit控件常用的信號是dateChanged,dateTimeChanged,TimeChanged,分別在改變日期,日期時間,時間時發射
通過以下代碼設置控件的信號連接槽函數
#當日期改變時觸發槽函數 self.dateEdit.dateChanged.connect(self.onDateChanged) #當日期時間改變時觸發槽函數 self.dateEdit.dateTimeChanged.connect(self.onDateTimeChanged) #當時間改變時觸發槽函數 self.dateEdit.timeChanged.connect(self.onTimeChanged)
槽函數如下
#日期發生改變時執行 def onDateChanged(self,date): #輸出改變的日期 print(date) #無論是日期還是時間改變都執行 def onDateTimeChanged(self,dateTime): #輸出改變的日期時間 print(dateTime) #時間發生改變執行 def onTimeChanged(self,time): #輸出改變的時間 print(time)
上述就是小編為大家分享的怎么在python中使用QDateTimeEdit日期時間控件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。