Skip to main content
 首页 » 编程设计

python之为什么 .bind() 方法不能与 Tkinter 中的框架小部件一起使用

2025年05月04日18mate10pro

此代码试图将命令绑定(bind)到框架,即。当按下“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(),代码会像我预期的那样工作。为什么我上面写的不起作用?

请您参考如下方法:

绑定(bind)有效,但事件只会在框架有焦点时触发,默认情况下框架没有键盘焦点。

尝试使用 frame1.focus_set() 设置焦点