Python tkinter:以不同的方式处理按钮按下事件打开/关闭按钮

Python tkinter:以不同的方式处理按钮按下事件打开/关闭按钮,python,button,tkinter,Python,Button,Tkinter,问题:似乎tkinter上的按钮按下事件将单击的位置w/r显示在窗口的左上角。但是,当您单击按钮小部件时,会发生ButtonPress事件,但给定的x、y位置值位于按钮的左上角。如何使ButtonPress事件发生在窗口左上角的w/r位置,而不是按钮 详细信息:我有一个tkinter程序,允许用户在图片(下面的布局)上绘制,但只出现在某个y值以下。如果将光标移动到该阈值以下(也称为图片下方并移动到具有说明的区域),则无法执行任何绘图功能。绘图仅在单击时进行,因此绑定到一个类方法,该类方法跟踪单击

问题:似乎tkinter上的按钮按下事件将单击的位置w/r显示在窗口的左上角。但是,当您单击按钮小部件时,会发生ButtonPress事件,但给定的x、y位置值位于按钮的左上角。如何使ButtonPress事件发生在窗口左上角的w/r位置,而不是按钮

详细信息:我有一个tkinter程序,允许用户在图片(下面的布局)上绘制,但只出现在某个
y
值以下。如果将光标移动到该阈值以下(也称为图片下方并移动到具有说明的区域),则无法执行任何绘图功能。绘图仅在单击时进行,因此
绑定到一个类方法,该类方法跟踪单击发生的位置并在该位置绘制图片:

self.root.bind(“”,self.addDot)

但是,在有说明的区域中,有一个撤消按钮。从理论上讲,单击它应该会撤消上次单击的效果。相反,如果我单击它,它会注册一个
事件,该事件相对于按钮的左上角(而不是窗口)具有x和y值。我不知道如何区分按下按钮的x、y位置与窗口或按钮的距离,因此
self.addDot
函数在图像左上角附近执行。单击的任何其他位置的行为都与正常情况相同

我看到的一个警告是,如果我将绑定更改为在画布上,而不是在根上,这会奇怪地消失,并按照预期的方式运行。为什么呢

布局:


您是否尝试在图像上绑定而不是在
根上绑定?
是的,它成功了,我只是不确定为什么不能在根上绑定而不是在
根上绑定,如果绑定在
根上,则
根的所有子项都将继承绑定。明白了。谢谢