Un semplice uso del oggetto Calendar delle librerie grafiche Qt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
#!/usr/bin/env python #Includo Librerie import sys from datetime import timedelta from PyQt4 import QtGui, QtCore #Classe Calendar class Calendar(QtGui.QWidget): def __init__(self): # Creo la finestra Principale QtGui.QMainWindow.__init__(self) self.setWindowTitle('Calendario') # Setto le dimensioni della finestra self.resize(300,120) #Creo oggetto per il layout verticale self.vbox = QtGui.QVBoxLayout() self.setLayout(self.vbox) #Creo oggetto Calendar self.cal = QtGui.QCalendarWidget() #Aggiungo la griglia al calendario self.cal.setGridVisible(True) #Metto il calendario dentro il layout self.vbox.addWidget(self.cal) #Creo il label self.lbl = QtGui.QLabel() self.vbox.addWidget(self.lbl) #Ogni volta al evento selectionChange eseguo la funzione date_change self.connect(self.cal, QtCore.SIGNAL('selectionChanged()'), self.date_changed) #Metodo della classe Calendar che cambia la data def date_changed(self): #Seleziono la corrente data date = self.cal.selectedDate() #Prende la data Qdate pydate = date.toPyDate() date_value = self.cal.setDateTextFormat(pydate,"D/M/Y") #Cambio il test del label self.lbl.setText('Data corrente %s' % datevalue) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) gui = Calendar() gui.show() app.exec_() |