为什么.bind()方法不适用于Tkinter中的框架小部件?

时间:2013-06-04 16:39:17

标签: python events tkinter

此代码尝试将命令绑定到帧,即。当按下“Escape”键时,窗口应该被销毁。

from tkinter import *
from tkinter import ttk

root=Tk()
root.geometry("400x400")

frame1=ttk.Frame(root)
frame1.pack()

def Exit(event):
    root.destroy()

frame1.bind("<Escape>", Exit)

root.mainloop()

如果frame1.bind()root.bind()替换,代码就像我期望的那样工作。为什么我上面写的不起作用?

1 个答案:

答案 0 :(得分:7)

绑定有效,但只有当帧具有焦点时才会触发事件,默认情况下,帧没有键盘焦点。

尝试使用frame1.focus_set()

设置焦点