2010-01-05 4 views
0

J'ai un calendrier qui fonctionne bien.Qt Calendrier Python: accès direct à la journée sélectionnée

Voici la fonction qui affiche la date complète:

def selectDate(self,date): 
    self.fullDate = str(date.day()) + "/" + str(date.month()) + "/" + str(date.year()) 
    print "full date: %s" % self.fullDate 

Et voici le code avec le calendrier:

def TabCalendar(self): 
    self.calendar = QtGui.QCalendarWidget(self.tab) 
    self.calendar.setGeometry(QtCore.QRect(self.x1, self.y1, self.x2, self.y2)) 

    QtCore.QObject.connect(self.calendar, QtCore.SIGNAL("selectionChanged()"), self.selectDate) 
    QtCore.QObject.connect(self.calendar, QtCore.SIGNAL("clicked(QDate)"), self.selectDate) 

Pour avoir un accès direct à jour sélectionné, je fais appel à la fonction selectDate basé sur l'événement de connexion, puis en utilisant la 'date' pour obtenir la date précise.jour et ainsi de suite - qui fonctionne bien.

La seule chose bizarre qui me gênant est qu'il donne l'avertissement suivant ..

TypeError: turbSchedule_selectDate() takes exactly 2 arguments (1 given) 

Toute suggestion d'arrêter cet avertissement TypeError?

Tous les commentaires et suggestions sont très appréciés.

Répondre

2

Je suppose que l'emplacement appelé par le signal selectdate ne doit pas avoir d'argument. Vous pouvez accéder à la date sélectionnée par la méthode de calendrier correspondante.

Voir les C++ docs: http://doc.trolltech.com/4.3/widgets-calendarwidget.html

Donc, votre code devrait être quelque chose comme:

def selectDate(self): 
    date = self.calendar.selectedDate() 
    self.fullDate = str(date.day()) + "/" + str(date.month()) + "/" + str(date.year()) 
    print "full date: %s" % self.fullDate 
+0

Merci Luc ... il a fait l'affaire! – ThreaderSlash

Questions connexes