2009-11-11 6 views

Répondre

1

Je suis surpris que mousePressEvent ne fonctionne pas pour un QCalendarWidget. Cela fonctionne pour la plupart des autres widgets. Après avoir regardé les documents pour QCalendarWidget, je remarque qu'il y a un signal cliqué. Si vous vous connectez, cela fonctionne.

import sys 

from PyQt4 import QtGui, QtCore 

class MyCalendar(QtGui.QCalendarWidget): 
    def __init__(self): 
     QtGui.QCalendarWidget.__init__(self) 
     self.connect(self, QtCore.SIGNAL("clicked(QDate)"), self.on_click) 
     self.prev_date = self.selectedDate() 

    def on_click(self, date): 
     if self.should_ignore(date): 
      self.setSelectedDate(self.prev_date) 
      return 
     self.prev_date = date 

    def should_ignore(self, date): 
     """ Do whatever here """ 
     return date.day() > 15 

app = QtGui.QApplication(sys.argv) 
cal = MyCalendar() 
cal.show() 
app.exec_() 

Je n'avais jamais extrait QCalendarWidget auparavant. Joli petit widget.