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

2024-04-20 10:51:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个ttkcalendar对象的实例,“cal”。当我将按钮click绑定到cal时,调用的函数仅在我单击ttcalendar框架的角时执行;当我单击实际的日历区域时,当ttkcalendar函数执行时,我的绑定不执行。你知道吗

当我单击“框架角点”时,将运行此代码

# Calendar Frame
    self.cal=Calendar(LeftFrame)
    self.cal.pack(side=TOP)
    self.cal.bind("<Button-1>",self.clicked)

我想如果我尝试绑定到日历的canvas对象,它就会工作。但是,此代码返回AttributeError:Calendar实例没有属性画布。你知道吗

# Calendar Frame
    self.cal=Calendar(LeftFrame)
    self.cal.pack(side=TOP)
    self.cal.canvas.bind("<Button-1>",self.clicked)

正如我所说,内部ttkcalendar绑定可以很好地切换显示的日期。有什么见解吗?谢谢


Tags: 对象实例函数代码self框架bindtop
1条回答
网友
1楼 · 发布于 2024-04-20 10:51:16

错误信息应该很清楚。如果python告诉您“AttributeError: Calendar instance has no attribute canvas”,您必须假设这是真的。你知道吗

查看Calendar类的源代码,我没有看到任何canvas属性。就像错误告诉您的那样,您正在尝试访问一个不存在的属性。你知道吗

Calendar确实有一个名为_canvas的属性,也许您可以尝试改用它。尽管如此,前导下划线表示它是一个私有属性,在以后的代码修订中可能会消失。你知道吗

相关问题 更多 >