QCalendarWidget類提供了以月爲單位地日曆部件。該部件容許用戶以一種簡單而直接的方式選擇日期。python
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class Calendar(QtGui.QWidget): def __init__(self, parent = None): QtGui.QWidget.__init__(self) self.setGeometry(300, 300, 350, 300) self.setWindowTitle('Calendar') self.cal = QtGui.QCalendarWidget(self) self.cal.setGridVisible(True) self.connect(self.cal, QtCore.SIGNAL('selectionChanged()'), self.showDate) self.label = QtGui.QLabel(self) date = self.cal.selectedDate() self.label.setText(str(date.toPyDate())) vbox = QtGui.QVBoxLayout() vbox.addWidget(self.cal) vbox.addWidget(self.label) self.setLayout(vbox) def showDate(self): date = self.cal.selectedDate() self.label.setText(str(date.toPyDate())) app = QtGui.QApplication(sys.argv) cal = Calendar() cal.show() sys.exit(app.exec_())
效果:app
該示例窗口擁有一個日曆部件和一個標籤部件。當前被選中的日期被顯示在標籤部件中。ui
使用self.cal = QtGui.QCalendarWidget(self)語句建立一個日曆對象。spa
self.connect(self.cal, QtCore.SIGNAL('selectionChanged()'), self.showDate)code
該語句將日曆對象的selectionChanged()信號和自定義的showDate()方法相鏈接。這樣在咱們選定一個日期後,日曆對象的selectionChanged()消息就會被觸發,而與之相連的showDate()方法就會被調用。對象
def showDate(self):
date = self.cal.selectedDate()
self.label.setText(str(date.toPyDate()))blog
在showDate方法中,咱們使用selectedDate方法獲取被選擇的日期。而後將其轉換爲字符串並顯示在標籤部件中。utf-8