1 """ 2 QCalendarWidget:提供了日歷插件 3 Author:dengyexun 4 DateTime:2018.11.22 5 """ 6 from PyQt5.QtWidgets import QWidget, QCalendarWidget, QApplication, QLabel, QVBoxLayout 7 from PyQt5.QtCore import QDate 8 import sys 9 10 class Example(QWidget): 11 12 def __init__(self): 13 super().__init__() 14 15 self.initUI() 16 17 def initUI(self): 18 # 將多個控件加入到qt的布局管理器中。建立一個箱布局 19 vbox = QVBoxLayout(self) 20 21 # # 日歷對象,網格可見 22 cal = QCalendarWidget(self) 23 cal.setGridVisible(True) 24 # 點擊日歷,傳入QDate數據,同showDate函數相關聯 25 cal.clicked[QDate].connect(self.showDate) 26 27 # 把日歷加入到這個箱子中 28 vbox.addWidget(cal) 29 30 # 顯示選定的日期的label 31 self.lbl = QLabel(self) 32 date = cal.selectedDate() 33 self.lbl.setText(date.toString()) 34 35 # 把label也加入到這個箱子中 36 vbox.addWidget(self.lbl) 37 38 # 要給vbox設置布局 39 self.setLayout(vbox) 40 41 self.setGeometry(300, 300, 350, 300) 42 self.setWindowTitle('Calendar') 43 self.show() 44 45 def showDate(self, date): 46 """ 47 顯示選中的日期 48 :param date: 點擊日歷組件,接收傳入的參數 49 :return: 50 """ 51 self.lbl.setText(date.toString()) 52 53 54 if __name__ == '__main__': 55 app = QApplication(sys.argv) 56 ex = Example() 57 sys.exit(app.exec_())