Python/pyqt5/CODE/元件使用範例/qt04_QDateTimeEdit02.py

85 lines
2.3 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
'''
簡介
PyQt5中DateTimeEdit範例
'''
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()
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)
vlayout.addWidget( self.dateEdit )
vlayout.addWidget( self.btn )
self.setLayout(vlayout)
# 日期發生改變時執行
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('dateTime=%s' % str(dateTime) )
print('maxDate=%s' % str(maxDate) )
print('maxDateTime=%s' % str(maxDateTime) )
print('maxTime=%s' % str(maxTime) )
print('minDate=%s' % str(minDate) )
print('minDateTime=%s' % str(minDateTime) )
print('minTime=%s' % str(minTime) )
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = DateTimeEditDemo()
demo.show()
sys.exit(app.exec_())