"""
QCalendarWidget:提供了日历插件
Author:dengyexun
DateTime:2018.11.22
"""
from PyQt5.QtWidgets import QWidget, QCalendarWidget, QApplication, QLabel, QVBoxLayout
from PyQt5.QtCore import QDate
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 将多个控件加入到qt的布局管理器中。建立一个箱布局
vbox = QVBoxLayout(self)
# # 日历对象,网格可见
cal = QCalendarWidget(self)
cal.setGridVisible(True)
# 点击日历,传入QDate数据,同showDate函数相关联
cal.clicked[QDate].connect(self.showDate)
# 把日历加入到这个箱子中
vbox.addWidget(cal)
# 显示选定的日期的label
self.lbl = QLabel(self)
date = cal.selectedDate()
self.lbl.setText(date.toString())
# 把label也加入到这个箱子中
vbox.addWidget(self.lbl)
# 要给vbox设置布局
self.setLayout(vbox)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Calendar')
self.show()
def showDate(self, date):
"""
显示选中的日期
:param date: 点击日历组件,接收传入的参数
:return:
"""
self.lbl.setText(date.toString())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())