tkinter 框架未检测到 <Motion> 事件
tkinter Frame does not detect <Motion> event
为什么 python 中的 tkinter.Frame
不适用于 someframe.bind("<Motion>", somefunc)
?在这种情况下 somefunc
不会被执行。有人可以给我解释一下吗?
代码:
self.frame.bind("<Motion>", tippy.update)
如果我将它绑定到例如 tkinter.Label
,一切都会按预期进行。代码已执行。
编辑:我认为如果我在 tkinter.Frame
中有 tkinter.Label
并且如果我将鼠标悬停在 tkinter.Label
上,它将被执行,因为它在 tkinter.Frame
].但是 tkinter.Frame
只有在该位置没有其他小部件时才会检测到移动。基本上我认为 tkinter.Frame
space 不会被 tkinter.Label
.
覆盖
下面的代码演示了 <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 我们可以尝试帮助您解决您遇到的任何问题。
为什么 python 中的 tkinter.Frame
不适用于 someframe.bind("<Motion>", somefunc)
?在这种情况下 somefunc
不会被执行。有人可以给我解释一下吗?
代码:
self.frame.bind("<Motion>", tippy.update)
如果我将它绑定到例如 tkinter.Label
,一切都会按预期进行。代码已执行。
编辑:我认为如果我在 tkinter.Frame
中有 tkinter.Label
并且如果我将鼠标悬停在 tkinter.Label
上,它将被执行,因为它在 tkinter.Frame
].但是 tkinter.Frame
只有在该位置没有其他小部件时才会检测到移动。基本上我认为 tkinter.Frame
space 不会被 tkinter.Label
.
下面的代码演示了 <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 我们可以尝试帮助您解决您遇到的任何问题。