我的节目:
#!/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()
它会打开窗口,但是当我按下返回或输入时它不会做任何事情。
答案 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())