QDateTimeEdit、QCalendarWidget
QDateTimeEdit
''' 输入各种风格的日期和时间 QDateTimeEdit ''' import sys,math from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class DateTimeEdit(QWidget): def __init__(self): super(DateTimeEdit, self).__init__() self.initUI() def initUI(self): vlayout = QVBoxLayout() dateTimeEdit1 = QDateTimeEdit() dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime()) dateTimeEdit1.setMinimumDate(QDate.currentDate().addDays(-365)) dateTimeEdit1.setMaximumDate(QDate.currentDate().addDays(365)) self.dateTimeEdit = dateTimeEdit1 dateTimeEdit2.setCalendarPopup(True) dateEdit = QDateTimeEdit(QDate.currentDate()) timeEdit = QDateTimeEdit(QTime.currentTime()) dateTimeEdit1.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") dateTimeEdit1.dateChanged.connect(self.onDateChanged) dateTimeEdit1.timeChanged.connect(self.onTimeChanged) dateTimeEdit1.dateTimeChanged.connect(self.onDateTimeChanged) vlayout.addWidget(dateTimeEdit1) vlayout.addWidget(dateTimeEdit2) vlayout.addWidget(dateEdit) vlayout.addWidget(timeEdit) self.btn = QPushButton('获取日期和时间') self.btn.clicked.connect(self.onButtonClick) vlayout.addWidget(self.btn) self.setLayout(vlayout) self.resize(300,90) self.setWindowTitle("设置不同风格的日期和时间") # 日期变化 def onDateChanged(self,date): print(date) # 时间变化 def onTimeChanged(self,time): print(time) # 日期和时间变化 def onDateTimeChanged(self,datetime): print(datetime) def onButtonClick(self): datetime = self.dateTimeEdit.dateTime() print(datetime) # 最大日期 print(self.dateTimeEdit.maximumDate()) # 最大日期和时间 print(self.dateTimeEdit.maximumDateTime()) # 最小日期 print(self.dateTimeEdit.minimumDateTime()) if __name__ == '__main__': app = QApplication(sys.argv) main = DateTimeEdit() main.show() sys.exit(app.exec_())
QCalendarWidget
''' 日历控件 QCalendarWidget ''' import sys,math from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class MyCalendar(QWidget): def __init__(self): super(MyCalendar, self).__init__() self.initUI() def initUI(self): self.cal = QCalendarWidget(self) self.cal.setMinimumDate(QDate(1988,1,1)) self.cal.setMaximumDate(QDate(2088,1,1)) self.cal.setGridVisible(True) self.cal.move(20,20) self.cal.clicked.connect(self.showDate) self.label = QLabel(self) date = self.cal.selectedDate() self.label.setText(date.toString("yyyy-MM-dd dddd")) self.label.move(20,300) self.resize(400,350) self.setWindowTitle("日历演示") def showDate(self,date): #self.label.setText((date.toString("yyyy-MM-dd dddd"))) self.label.setText((self.cal.selectedDate().toString("yyyy-MM-dd dddd"))) if __name__ == '__main__': app = QApplication(sys.argv) main = MyCalendar() main.show() sys.exit(app.exec_())
天道酬勤 循序渐进 技压群雄