Я довольно новичок в python и tkinter. Я работаю с python 2.7 и tkinter 8.5.Tkinter bind не работает при передаче root.destroy напрямую
Я пытаюсь выйти мое приложение при нажатии на клавишу побег, и я столкнулся с каким-то странным поведением:
Когда я прохожу root.destoy в качестве аргумента для связывания(), приложение не делает ничего:
root = Tk()
...
root.bind('<Escape>', root.destroy)
Но если определить функцию, которая вызывает root.destroy() и передать в качестве аргумента для связывания, все работает, как ожидалось:
def exit_app():
root.destroy()
root.bind('<Escape>', exit_app)
Это также работает, если я прохожу лямбда как это:
root.bind('<Escape>', lambda f: root.destroy())
Может ли кто-нибудь объяснить, что здесь происходит?
Благодаря
Мне очень сложно поверить, что он работает с 'exit_app'. Это должно дать ту же ошибку, что и при непосредственном связывании с root.destroy. –
@furas жаль, что опечатка существует только в этом посте (я не копировал и не вставлял, это просто упрощенный пример). Редактирование сообщения прямо сейчас. Спасибо –
@BryanOakley Почему вам трудно поверить? Он работает на моей машине –