从零开始学Pyqt5之【控件介绍】(16):日历与时间控件QCalendar、QDateTImeEdit
原创
©著作权归作者所有:来自51CTO博客作者阿旭算法与机器学习的原创作品,请联系作者获取转载授权,否则将追究法律责任
从零开始学Pyqt5之【控件介绍】(16):日历与时间控件
- QCalendar控件的作用
- QCalendar控件常用方法
- QCalendar代码示例
- QDateTimeEdit控件的作用
- QDateTimeEdit控件常用方法
- QDateTimeEdit控件常用信号
- QDateTimeEdit控件代码示例
QCalendar控件
QCalendar控件的作用
QCalendar是一个日历控件,它提供了一个基于月份的视图,允许用户通过鼠标或键盘选择日期,默认选中的是今天的日期,同时也可以对日历的日期范围进行规定。
QCalendar控件常用方法

QCalendar代码示例
# -*- coding: utf-8 -*-
import sys
from PyQt5 import QtCore
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QDate
class CalendarExample( QWidget):
def __init__(self):
super(CalendarExample, self).__init__()
self.initUI()
def initUI(self):
self.cal = QCalendarWidget(self)
# 设定日历最小日期
self.cal.setMinimumDate(QDate(1980, 1, 1))
# 设定日历最大日期
self.cal.setMaximumDate(QDate(3000, 1, 1))
# 显示日历网格
self.cal.setGridVisible(True)
self.cal.move(20, 20)
# 选定一个日期,会发射一个QtCore.QDate信号,
self.cal.clicked[QtCore.QDate].connect(self.showDate)
self.lbl = QLabel(self)
# selectedDate获取当前日期,默认是运行当前
date = self.cal.selectedDate()
self.lbl.setText(date.toString("yyyy-MM-dd dddd"))
self.lbl.move(20, 300)
self.setGeometry(100,100,400,350)
self.setWindowTitle('Calendar 例子')
def showDate(self, date):
# 在lb1控件上显示所选择的日期
self.lbl.setText(date.toString("yyyy-MM-dd dddd") )
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = CalendarExample()
demo.show()
sys.exit(app.exec_())
代码运行结果:

QDateTimeEdit控件
QDateTimeEdit控件的作用
QDateTimeEdit控件可以允许用户编辑日期时间,使用键盘和上、下箭头按钮来增加或减少日期时间值。比如,当使用鼠标选中 QDateTimeEdit 中的年份时,可以使用键盘上的上、下键来改变数值。
QDateTimeEdit控件常用方法

QDateTimeEdit控件常用信号

QDateTimeEdit控件代码示例
# -*- coding: utf-8 -*-
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()
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_())
代码运行结果:
