У меня есть метод getCurrentDate; этот метод должен вернуть текущий отображаемый месяц.PyQt QCalendarWidget - метод не возвращает значение
# coding: utf-8
import sys
from PyQt4 import QtCore, QtGui
class Window(QtGui.QCalendarWidget):
def __init__(self):
QtGui.QCalendarWidget.__init__(self)
self.resize(300, 300)
self.connect(self, QtCore.SIGNAL('currentPageChanged()'), self.getCurrentDate)
print self.getCurrentDate()
def getCurrentDate(self):
return self.monthShown()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
gui = Window()
gui.show()
sys.exit(app.exec_())
Когда я называть getCurrentDate, она возвращает текущее значение (например, 2), но когда я изменить отображение на следующий месяц, метод ничего не возвращает. Зачем?
Просто примечание: вам следует рассмотреть возможность использования [поддержки нового типа сигнала/слота] (http://pyqt.sourceforge.net/Docs/PyQt 4/new_style_signals_slots.html), если вы используете PyQt 4.5 или выше. – Claus
Да - если бы вы использовали синтаксис нового стиля и неправильно установили соединение, он бы поднял TypeError. Самое плохое в синтаксисе старого стиля заключается в том, что он терпит неудачу (и очень легко получить подпись SIGNAL неправильно). – ekhumoro