Tkinter绑定进入/返回的问题

时间:2013-06-23 18:02:12

标签: python class tkinter python-2.5

我的节目:

#!/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()  

它会打开窗口,但是当我按下返回或输入时它不会做任何事情。

1 个答案:

答案 0 :(得分: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())