我创建了一个非常简单的应用程序,它提供了一个easygui entrybox(),并在接收用户输入时继续无限循环。
我可以使用“取消”按钮退出程序,因为这将返回“无”,但我也希望能够使用标准的“关闭”按钮退出程序(即Windows窗口的右上角,Mac窗口的左上角)此按钮当前不起任何作用。
在查看easygui模块时,我发现了这一行:

root.protocol('WM_DELETE_WINDOW', denyWindowManagerClose )

这似乎是罪魁祸首我不是Tkinter的专家,但我可能会想办法改变这个处理程序,使其按照我想要的方式运行。
然而,由于我不想搅乱easygui模块,有没有办法从我的主脚本中重写此行为,并让close按钮要么直接关闭程序,要么不返回任何内容?

最佳答案

它需要修改easygui模块,是的。我会修改的!
**我已经给EasyGUI的创建者发了一封电子邮件,解释了这一点[2009年1月23日下午12:12]
**我只想说,发生这种变化的可能性——如果真的发生了,我对此表示怀疑——非常小。你看,easygui是一种创建gui的简单、离散的方法。我认为这个添加不会有任何帮助,特别是因为界面是非常连续的,所以它会让新用户感到困惑[2009年1月23日下午12:19]
**easygui的创建者在回复我的电子邮件时说:
EasyGUI对话框不应该退出
应用程序——它应该传回
给调用方的值,并让
打电话的人决定做什么。
但这是个有趣的主意。
而不是简单地忽略点击
“关闭”图标,易用的盒子可以
返回与单击
“取消”按钮将返回。
我来考虑一下。
--史蒂夫·弗格
我认为这至少是个进步【2009年1月23日下午2:40】

09-06 02:22