簡體   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