我有一个ttkcalendar对象的实例,“cal”。当我绑定一个按钮点击到cal时,只有当我点击ttcalendar帧的角落时,才会执行被调用的函数;当我点击实际的日历区域时,ttkcalendar函数执行时,我的绑定不会。
单击Frame corner
时会运行此代码# Calendar Frame
self.cal=Calendar(LeftFrame)
self.cal.pack(side=TOP)
self.cal.bind("<Button-1>",self.clicked)
我认为如果我尝试绑定到日历的画布对象就可以了。但是,此代码返回AttributeError:Calendar实例没有属性画布。
# Calendar Frame
self.cal=Calendar(LeftFrame)
self.cal.pack(side=TOP)
self.cal.canvas.bind("<Button-1>",self.clicked)
正如我所说,内部ttkcalendar绑定工作正常,显示切换日期。任何见解?感谢
答案 0 :(得分:0)
错误信息应该非常清楚。如果python告诉你&#34; AttributeError: Calendar instance has no attribute canvas
&#34;,你必须假设这是真的。
查看Calendar
课程的源代码,我看不到任何canvas
属性。就像错误告诉您一样,您正在尝试访问不存在的属性。
Calendar
类 具有名为_canvas
的属性,也许您可以尝试使用它。但是,该前导下划线表示它旨在作为私有属性,并且可能在将来的代码修订版中消失。