我对Python和tkinter相当陌生。我正在使用python 2.7和tkinter 8.5。当直接传递root.destroy时,Tkinter绑定不起作用
我试着按下Escape键,退出我的应用程序,我遇到了一些奇怪的行为:
当我通过root.destoy作为参数bind()时,应用程序不执行任何操作:
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你为什么觉得很难相信?它在我的机器上工作 –