2017-10-08 59 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我們可以嘗試,並幫助您完成您遇到任何問題。