繁体   English   中英

wxPython window 不会关闭

[英]wxPython window won't close

当您单击“取消”时,它会取消... 当您单击“确定”时,它会重新弹出对话框。 我怎样才能解决这个问题?

def quitApp(self, event):
    dial = wx.MessageDialog(None, 'Are you sure you want to quit?','Quit',  wxYES | wxNO)
    if dial.ShowModal() == wxID_YES:
        self.Close(true)

会不会是系统 CloseEvent 处理程序调用了 quitApp? 在这种情况下,self.Close(true) 只会触发一个新的 CloseEvent,在这种情况下它将再次调用 quitApp 并显示一个新的对话框......等等。

我建议您使用 sys.exit(0) 而不是 self.Close(true) 退出应用程序。

在不了解更多信息的情况下(请参阅我的评论),我可以采取一些措施:

  1. 如果self是一个 App,那么self.ExitMainLoop()将关闭程序。
  2. 如果self是一个 Frame,那么self.Close(True)是合适的。
  3. 如果self是其他任何东西,那么sys.exit(0)将关闭 Python 解释器并关闭程序。

您需要提供更多代码。 看起来其他东西正在触发quitApp function。 你的 function 没有循环。 它可能正在循环,因为它试图关闭并且事件不断被调用。 尝试使用self.Destroy()来关闭框架。

def CloseTheProgram( self, event ): dial = wx.MessageDialog(None, 'Are you sure you want to quit?','Quit', wx.YES | wx.NO) if dial.ShowModal() == wx.ID_YES: self.Close(True)

暂无
暂无

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

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