2013-06-23 23 views
0

我的程序:與Tkinter的結合進入問題/返回

#!/usr/bin/python 
from Tkinter import * 
class App: 
    def __init__(self,master): 
     frame = Frame(master,width = 100,height = 100) 
     frame.bind('<Return>',self.ret) 
     frame.pack() 

    def ret(self): 
     print "You pressed enter" 

root = Tk() 
app = App(root) 
root.mainloop() 

它打開的窗口,但是當我按回車鍵或輸入它不會做任何事情。

回答

3

這是因爲你必須將焦點設置在框架上,以響應事件:

frame = Frame(master,width = 100,height = 100) 
frame.focus_set() 

順便說一句,回調收到一個Tkinter的事件作爲一個參數,所以ret應定義爲def ret(self, event),或使用lambda函數綁定事件並且不使用參數:

frame.bind('<Return>', lambda e: self.ret())