2012-08-24 58 views
1

有沒有辦法將相同的鍵綁定到Tkinter中的兩個不同的小部件?Tkinter:將相同的鍵綁定到不同的小部件

問候,

雅格布

+0

你真的想解決什麼問題?你是否需要相同的鍵來在不同的小部件中做不同的事情(例如:F1在一個小部件中調用foo(),但從另一個小部件中調用bar())?或者,你是否想要創建一個全局綁定,無論焦點是在哪個小部件中,都會觸發? –

+0

@BryanOakley問題是連接到一個小部件中顯示參數,但你昨天在另一個問題中解決了它,謝謝你兩次! – Copo

回答

3

肯定有。將它綁定到兩個不同的小部件。

import Tkinter 
root = Tkinter.Tk() 

def keypress1(event): 
    print event.keysym, " key pressed in root" 

def keypress2(event): 
    print event.keysym, " key pressed in text" 

text = Tkinter.Text(root, width=20, height=20) 
root.bind("<Return>", keypress1) 
text.bind("<Return>", keypress2) 
text.pack() 

root.mainloop() 

當然,事件必須實際發生在兩個小部件中。我不確定是否有辦法將一個小部件捕獲的事件傳播給另一個沒有捕獲它的事件。但是,可能有更好的方法來解決你的問題,而不是用這種方式來傳播事件;你總是可以通過root趕上活動,並在那裏做任何你想做的事情。

相關問題