繁体   English   中英

WxPython window 未关闭

[英]WxPython window not closing

我学习了如何使用 WxPython 检测 window 关闭,但我遇到了问题。 当我点击右上角的“X”时,我希望会出现一个对话框,上面写着“您确定要退出吗?” 并出现 2 个按钮,是或否。 那也行。 但是当我单击“是”时,它应该关闭,但是当我单击“否”时,它应该不会关闭。 否工作正常但是当我单击是时,对话框关闭并再次打开,我无法关闭主应用程序......我不得不使用任务管理器......我做错了什么? 请帮助我:这是我的关闭功能:

def OnExit(self, event):
    
    if event.GetEventType() == wx.EVT_CLOSE.typeId:
        
        dial = wx.MessageDialog ( None, 'Are you sure you want to exit?', 'Exclamation',
        wx.YES_NO | wx.ICON_EXCLAMATION )
        
        if dial.ShowModal() == wx.ID_NO:
            
            pass
        
        else:
            self.Close()

请帮我! 任何答复将不胜感激!提前致谢!

毕竟,您是在调用self.Close()并因此创建一个新的 EVT_CLOSE 事件,从而将您置于无限循环中。
And ,由于if语句的结构,您不能再使用菜单通过File -> Quit关闭程序。
我会建议一些类似的东西。

    if event.GetEventType() == wx.EVT_CLOSE.typeId:
        
        dial = wx.MessageDialog ( self, 'Are you sure you want to exit?', 'Exclamation',
        wx.YES_NO | wx.ICON_EXCLAMATION )
        
        if dial.ShowModal() == wx.ID_NO:
            return
        
    self.Destroy()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM