2017-10-08 55 views
0

为什么tkinter.Frame在python中不能与someframe.bind("<Motion>", somefunc)一起使用?在这种情况下,somefunc不会被执行。有人可以向我解释这个吗?tkinter帧未检测到<Motion>事件

代码: self.frame.bind("<Motion>", tippy.update)

如果我结合这例如tkinter.Label,按预期工作的一切。代码被执行。

编辑:我想,如果我在tkinter.Frametkinter.Label,如果我将鼠标悬停在tkinter.Label,它会被执行,因为它在tkinter.Frame。但是,tkinter.Frame只有在该位置没有其他小部件的情况下才会检测到移动。基本上我认为tkinter.Frame的空间没有被tkinter.Label所缠绕。

+1

我们需要更多信息才能回答问题。请修改您的帖子,以包含无法按预期工作的代码片段。 –

+0

你确定你的画框有焦点吗? – SolarFactories

+0

这应该不会影响。 –

回答

0

下面的代码表明,<Motion>事件不具有Frame部件在Tkinter的工作:

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我们可以尝试,并帮助您完成您遇到任何问题。