Если я вызываю этот класс дважды, первый раз клавиатурный фокус переходит к окну. Во второй раз это не так. Клавиша Escape используется для закрытия окна и работает с первого раза. Во второй раз нужно щелкнуть мышью по окну, чтобы сработала клавиша escape. Что-то происходит, когда фокус не возвращается назад? Я сталкивался с этой проблемой несколько раз, но здесь я поймал ее как можно проще. Вот код:
from Tkinter import *
class Dialog(): # imagine this having buttons and stuff
def __init__(self):
root = Tk()
root.bind_all('<Escape>', lambda event :root.destroy())
root.mainloop()
# this simulates running a python terminal app which invokes a dialog at some point
Dialog() # this one accepts the key action
Dialog() # this one needs a mouse click in the window first