PyQt - Widget QCalendar

QCalendarwidget est un contrôle de sélection de date utile. Il fournit une vue mensuelle. L'utilisateur peut sélectionner la date à l'aide de la souris ou du clavier, la date par défaut étant la date du jour. La plage de dates du calendrier peut également être stipulée.

Voici quelques méthodes utilitaires de cette classe -

Vous trouverez ci-dessous les méthodes les plus couramment utilisées de QCalendar.

N ° Sr. Méthodes et description
1

setDateRange()

Définit les dates inférieure et supérieure disponibles pour la sélection

2

setFirstDayOfWeek()

Détermine le jour de la première colonne du calendrier

Les constantes de jour prédéfinies sont -

  • Qt.Monday
  • Qt.Tuesday
  • Qt.Wednesday
  • Qt.Thursday
  • Qt.Friday
  • Qt.Saturday
  • Qt.Sunday
3

setMinimumDate()

Définit la date la plus basse pour la sélection

4

setMaximumDate()

Définit la date supérieure de sélection

5

setSelectedDate()

Définit un objet QDate comme date sélectionnée

6

showToday()

Affiche le mois d'aujourd'hui

sept

selectedDate()

Récupère la date sélectionnée

8

setGridvisible()

Active ou désactive la grille du calendrier

Exemple

L'exemple suivant a un widget de calendrier et une étiquette qui affiche la date actuellement sélectionnée. Le code complet est le suivant -

import sys
from PyQt4 import QtGui, QtCore

class 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(20, 200)
		
      self.setGeometry(100,100,300,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()

Le code ci-dessus produit la sortie suivante -