tkinter Frame未检测到<motion>事件

时间:2017-10-08 08:41:25

标签: python tkinter binding frame motion

为什么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覆盖。

1 个答案:

答案 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,我们可以尝试帮助您解决您遇到的任何问题。