为什么python中的tkinter.Frame
不能与someframe.bind("<Motion>", somefunc)
一起使用?在这种情况下,somefunc
不会被执行。有人可以向我解释一下吗?
代码:
self.frame.bind("<Motion>", tippy.update)
如果我将其绑定到例如tkinter.Label
,则一切都按预期工作。代码已执行。
编辑:我认为如果tkinter.Label
中有tkinter.Frame
,如果我将鼠标悬停在tkinter.Label
上,它会被执行,因为它位于tkinter.Frame
。但是,只有当地方没有其他小部件时,tkinter.Frame
才会检测到移动。基本上我认为tkinter.Frame
空间不会被tkinter.Label
覆盖。
答案 0 :(得分:0)
以下代码演示了<Motion>
事件是否适用于tkinter中的Frame
小部件:
from tkinter import *
root = Tk()
def callback(*args):
print("Motion detected")
frame = Frame(root, width=100, height=100)
frame.bind("<Motion>", callback)
frame.pack()
root.mainloop()
如果您能提供MCVE,我们可以尝试帮助您解决您遇到的任何问题。