课程目录
- 视频链接
- 课程重点
- 代码位置
- 完整代码
- 遇到的问题
- 改写效果展示
- 改写注意点
- 改写代码(QTdesigner模式)
>>> 点击进入:pyqt5专栏<<<
老师原课件下载地址:
有积分的朋友,支持下我,打赏也OK。
不下载也可以,我每节课会吧代码贴出来
视频链接
P57课时58.日期和时间控件的高级操作
课程重点

代码位置

完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | ''' 输入各种风格的日期和时间 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_()) |
遇到的问题
设置setDateTime方法是查到的
改写效果展示

改写注意点

1 | dateTimeEdit2.setCalendarPopup(True) |

改写代码(QTdesigner模式)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | # -*- coding:utf-8 -*- ''' @Author: knocky @Blog: https://blog.csdn.net/zzx188891020 @E-mail: [email protected] @File: class57.py @CreateTime: 2020/5/20 23:13 ''' import sys from PyQt5.QtWidgets import QApplication,QWidget from PyQt5 import uic from PyQt5.QtCore import * class my_form(QWidget): def __init__(self): super().__init__() uic.loadUi('../ui_package/class58.ui', self) self.dateTimeEdit1.setDateTime(QDateTime.currentDateTime()) self.dateTimeEdit2.setDateTime(QDateTime.currentDateTime()) self.dateEdit.setDateTime(QDateTime.currentDateTime()) self.timeEdit.setDateTime(QDateTime.currentDateTime()) self.dateTimeEdit1.dateChanged.connect(self.onDateChanged) self.dateTimeEdit1.timeChanged.connect(self.onTimeChanged) self.dateTimeEdit1.dateTimeChanged.connect(self.onDateTimeChanged) self.btn.clicked.connect(self.onButtonClick) # 日期变化 def onDateChanged(self, date): print(date) # 时间变化 def onTimeChanged(self, time): print(time) # 日期和时间变化 def onDateTimeChanged(self, datetime): print(datetime) def onButtonClick(self): datetime = self.dateTimeEdit1.dateTime() print(datetime) # 最大日期 print('最大日期:',self.dateTimeEdit1.maximumDate()) # 最大日期和时间 print('最大日期和时间',self.dateTimeEdit1.maximumDateTime()) # 最小日期 print('最大日期和时间',self.dateTimeEdit1.minimumDateTime()) if __name__ == '__main__': app = QApplication(sys.argv) main = my_form() main.show() sys.exit(app.exec_()) |