Python使用wxPython做界面,如何在关闭窗口前让用户确认一下?
'''
想象中的功能:程序运行后,用户点击叉号或者点击关闭按钮,都能激活函数OnClose()
在OnClose()中询问用户是否真的关闭界面,
用户点击“确定”则关闭界面,
用户点击“取消”则不关闭界面
现在的问题:点击关闭按钮无反应,点击叉号报错。
需求:能否在不建立Class的情况下实现预想的功能,代码该如何修改呢?
'''
import wx
#关闭主窗口前确认一下是否真的关闭
def OnClose(self, event):
r = wx.MessageBox("关闭窗口?", "确认", wx.CANCEL|wx.OK|wx.ICON_QUESTION)
if r == wx.ID_OK:
self.Destroy()
app = wx.App(False)
frame = wx.Frame(parent=None, size=(300, 200))
panel = wx.Panel(frame)
button = wx.Button(panel, label = "关闭")
button.Bind(wx.EVT_BUTTON, OnClose, frame) #按钮绑定主窗口关闭事件
frame.Bind(wx.EVT_CLOSE, OnClose) #主窗口绑定自身的关闭事件
frame.Show(True)
app.MainLoop()