2014-07-02 284 views
0

我正在開發一個GUI和一切都很順利,只是當我關閉它下面的出現,我擔心它可能會影響最終用戶:內存泄漏

swig/python detected a memory leak of type 'wxWizard *', no destructor found. 

如何我是否防止發生這種內存泄漏?

回答

1

聽起來像嚮導沒有正確關閉。無論用戶是否完成嚮導,確保在退出嚮導時調用嚮導的Destroy()方法。

您應該可以通過捕獲嚮導的完成和取消按鈕事件來完成此操作。您也可以捕獲EVT_CLOSE並銷燬該事件處理程序中的嚮導。請注意,如果你這樣做,你還需要調用框架的Destroy方法來正確關閉框架。

+0

請創建一個演示此問題的小型可運行示例。還包括你正在使用的操作系統,wxPython和Python版本 –

+0

Hi'Mike'。我爲每個單獨的應用程序(這是我在'TestPanel'類中實現的函數)的嚮導調用'Destroy()'方法,並且包含了大部分'run.py'代碼。在定義了我的'class LoginDialog()'對象之後,我立即將'RunDemoApp()'對象複製粘貼到'run.py'module中,使所有相關的包導入。從前面給你的提示中,我推斷出如果我明確將代碼包含在'run.py'中,我就不需要'runTest'函數。一如既往,感謝Mike'的指導。你的博客太棒了! – Kaysi

+0

這是一個複雜的嚮導,我爲醫療客戶開發了許多功能,用於創建隊列,分析發病率以及進行信號檢測,因此創建一個小的可運行示例可能很難,但如果我未能解決問題,我會嘗試這一天結束。就這樣吧,我使用的是Mac OS X Mavericks,wxPython 3.0版(cocoa)和python 2.7.6。再次感謝。 – Kaysi