我创建了一个非常简单的应用程序,它提供了一个easygui entrybox()并在接收用户输入时继续无限循环.
我可以使用"取消"按钮退出程序,因为这会返回"无",但我还希望能够使用标准的"关闭"按钮退出程序.(即Windows窗口的右上角,Mac窗口的左上角)此按钮当前不执行任何操作.
看一下easygui模块,我找到了这一行:
root.protocol('WM_DELETE_WINDOW', denyWindowManagerClose )
这似乎是罪魁祸首.我不是TKinter专家,但我可能会想出如何改变这个处理程序以我想要的方式行事.
但是,因为我不想搞乱easygui模块,有没有办法从我的主脚本覆盖这个行为,并且关闭按钮要么直接关闭程序还是返回None?
它需要改变easygui模块,是的.我会修改它!
**我已经发送电子邮件给EasyGUI创建者解释了这个[12月12日下午12点12分]
**我只是想说这种变化发生的可能性 - 如果有的话,我怀疑 - 是非常微小的.您看,EasyGUI旨在成为创建GUI的简单,离散的方式.我认为这种添加对任何一种都没有帮助,特别是因为界面是非常顺序的,所以它会让新用户感到困惑.[2009年1月23日12:19]
**EasyGUI创建者在回复我的电子邮件时说:
easygui对话框永远不会退出应用程序 - 它应该将值传递给调用者并让调用者决定该做什么.
但这是一个有趣的想法.easygui框不是简单地忽略对"关闭"图标的点击,而是返回与点击"取消"按钮返回的相同的值.我会冥想这个.
- 史蒂夫弗格
我认为至少这是进步.[2009年1月23日下午2:40]