wxPython:關閉wxPython程序


  一、正常關閉

  wx.App子類的OnExit()方法在最后一個窗口被關閉且在wxPython的內在清理過程之前被調用,所以,可以在OnExit()方法中清理任何創建的非wxPython資源。如果調用了wx.Exit()關閉wxPython程序,OnExit()方法仍會被調用。

  如果想在所有窗口關閉后wxPython程序仍可繼續,可使用wx.App的SetExitOnFrameDelete(flag)方法,如果flag設置為False,最后的窗口關閉后wxPython仍可運行。此時wx.App繼續存活,事件循環也繼續正常,此時要結束,調用wx.Exit()即可。

二、非正常關閉

  兩種方法:

  • 調用wx.App的ExitMainLoop()方法。
  •     調用wx.Exit()方法。

  這兩種方法會導致一些清理函數沒有被調用。

  也可為事件wx.EVT_QUERY_END_SESSION綁定處理器,event參數為是wx.CloseEvent,我們可以通過關閉事件來否決關閉。這可以使用關閉事件的CanVeto()方法,CanVeto()方法決定是否可以否決,Veto()執行否決。如果你不能成功地保存或關閉所有的資源,你可能想使用該方法。   wx.EVT_QUERY_END_SESSION事件的默認處理器調用頂級窗口的Close()方法,這將依次向頂層窗口發送wx.EVT_CLOSE事件,這給了你控制關閉過程的另一選擇。如果任何一個Close()方法返回False,那么應用程序將試圖否決關閉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM