Qt Python日历:选择日直接访问

时间:2010-01-05 08:55:50

标签: python qt date calendar typeerror

我的日历工作正常。

以下是显示完整日期的功能:

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

这里是带日历的代码:

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)

要直接访问所选日期,我根据connect事件调用函数selectDate,然后使用'date'获取精确的date.day等等 - 这工作正常。

让我烦恼的唯一尴尬是它发出以下警告......

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

是否有任何建议停止此类型错误警告?

我们非常感谢所有意见和建议。

1 个答案:

答案 0 :(得分:2)

我猜测selectdate信号调用的插槽不应该有任何参数。您可以通过相应的日历方法访问selectedDate。

请参阅c ++文档:http://doc.trolltech.com/4.3/widgets-calendarwidget.html

所以你的代码应该是这样的:

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