A QtGui.QCalendarWidget
provides a monthly based calendar widget. It allows a user to select a date in a simple and intuitive way.
#!/usr/bin/python# -*- coding: utf-8 -*-"""ZetCode PyQt4 tutorial This example shows a QtGui.QCalendarWidget widget.author: Jan Bodnarwebsite: zetcode.com last edited: September 2011"""import sysfrom PyQt4 import QtGui, QtCoreclass Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): cal = QtGui.QCalendarWidget(self) cal.setGridVisible(True) cal.move(20, 20) cal.clicked[QtCore.QDate].connect(self.showDate) self.lbl = QtGui.QLabel(self) date = cal.selectedDate() self.lbl.setText(date.toString()) self.lbl.move(130, 260) self.setGeometry(300, 300, 350, 300) self.setWindowTitle('Calendar') self.show() def showDate(self, date): self.lbl.setText(date.toString()) def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_())if __name__ == '__main__': main()
The example has a calendar widget and a label widget. The currently selected date is displayed in the label widget.
cal = QtGui.QCalendarWidget(self)
We construct a calendar widget.
cal.clicked[QtCore.QDate].connect(self.showDate)
If we select a date from the widget, a clicked[QtCore.QDate]
signal is emitted. We connect this signal to the user defined showDate()
method.
def showDate(self, date): self.lbl.setText(date.toString())
We retrieve the selected date by calling the selectedDate()
method. Then we transform the date object into string and set it to the label widget.
Figure: QtGui.QCalendarWidget