当您单击取消时,它取消...当您单击确定时,它会重新弹出对话框。我该如何解决这个问题?
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)
答案 0 :(得分:5)
是否可以由系统CloseEvent处理程序调用quitApp?在这种情况下,self.Close(true)仅触发一个新的CloseEvent,在这种情况下,它将再次调用quitApp并显示一个新的对话框......依此类推。
我建议您使用sys.exit(0)而不是self.Close(true)退出应用程序。
答案 1 :(得分:2)
如果不了解更多信息(请参阅我的评论),我可以采取一些措施:
self
是应用,则self.ExitMainLoop()
将关闭该计划。self
是一个框架,则self.Close(True)
是合适的。self
是其他内容,则sys.exit(0)
将关闭Python解释器并关闭该程序。答案 2 :(得分:1)
您需要提供更多代码。看起来其他东西正在触发quitApp
功能。你的功能没有循环。它可能是循环的,因为它试图关闭并且事件不断被调用。请尝试使用self.Destroy()
关闭相框。
答案 3 :(得分:0)
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)