当你点击 "取消 "时,它会取消... 当你点击 "确定 "时,它又弹出对话框。如何解决这个问题?
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)
会不会是quitApp被系统的CloseEvent处理程序调用了?在这种情况下,self.Close(true)只会触发一个新的CloseEvent,在这种情况下,它会再次调用quitApp并显示一个新的对话框......等等。
我建议你用sys.exit(0)而不是用self.Close(true)来退出应用程序。
在不了解更多的情况下(见我的评论),我可以进行一些尝试。
self
是一个App,那么 self.ExitMainLoop()
将关闭程序。self
是一个框架,那么 self.Close(True)
是合适的。self
是别的什么,那么 sys.exit(0)
将关闭 Python 解释器并关闭程序。您需要提供更多的代码。看起来是有其他东西在触发 quitApp
函数。你的函数在那里没有循环。它可能是循环的,因为它试图关闭,而事件一直被调用。试试使用 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)