2014-07-02 285 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