绑定鼠标单击实例的小部件

时间:2014-08-01 19:50:58

标签: python binding tkinter

我有一个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绑定工作正常,显示切换日期。任何见解?感谢

1 个答案:

答案 0 :(得分:0)

错误信息应该非常清楚。如果python告诉你&#34; AttributeError: Calendar instance has no attribute canvas&#34;,你必须假设这是真的。

查看Calendar课程的源代码,我看不到任何canvas属性。就像错误告诉您一样,您正在尝试访问不存在的属性。

Calendar 具有名为_canvas的属性,也许您可​​以尝试使用它。但是,该前导下划线表示它旨在作为私有属性,并且可能在将来的代码修订版中消失。