七、PyQt5 之 日历
#!/usr/bin/python # -*- coding:utf-8 -*- import sys 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(1994, 11, 27)) # 设置允许显示的最大日期 self.cal.setMaximumDate(QDate(2094, 1, 27)) # 设置网格格式 self.cal.setGridVisible(True) self.cal.clicked.connect(self.showDate) self.move(20, 20) 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_())
#!/usr/bin/python # -*- coding:utf-8 -*- import sys 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): layout = QVBoxLayout() dateTimeEdit1 = QDateTimeEdit() # 传入当前时间 dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime()) # 设置当前日期最小值最大值前前后365天 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) layout.addWidget(dateTimeEdit1) layout.addWidget(dateTimeEdit2) layout.addWidget(dateEdit) layout.addWidget(timeEdit) self.button = QPushButton("获取日期和时间") self.button.clicked.connect(self.onButtonClick) layout.addWidget(self.button) self.setLayout(layout) 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.minimumDateTime()) # 最大日期 print(self.dateTimeEdit.maximumDate()) # 最小日期和时间 print(self.dateTimeEdit.minimumDateTime()) if __name__ == '__main__': app = QApplication(sys.argv) main = DateTimeEdit() main.show() sys.exit(app.exec_())


浙公网安备 33010602011771号