3

このコードは、コマンドをフレームにバインドしようとする試みです。「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()、コードは期待どおりに機能します。上に書いたことがうまくいかないのはなぜですか?

4

1 に答える 1

8

バインドは機能しますが、フレームにフォーカスがある場合にのみイベントがトリガーされ、デフォルトではフレームにキーボード フォーカスがありません。

でフォーカスを設定してみてくださいframe1.focus_set()

于 2013-06-04T17:03:13.177 に答える