QCalendarWidget에 대해 mousePressEvent를 재정의하면 작동하지 않습니다. 그것은 다른 대부분의 위젯에서 작동합니다. QCalendarWidget에 대한 문서를 살펴본 후 클릭 신호가 있음을 확인합니다. 연결하면 작동합니다.
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_()
나는 전에 QCalendarWidget을 체크 아웃하지 않았어. 꽤 달콤한 작은 위젯.