我很难弄清楚FigureCanvasTkAgg的声明会导致内存泄漏,在我的类__init__
方法中有以下几行:
# pndwinBottom is a paned window of the main screen
self.__drawplotFrame = Frame(pndwinBottom, width=WIDTH, height=HEIGHT) # the frame on which we will add our canvas for drawing etc.
self.__fig = plt.figure(figsize=(16,11))
self.__drawplotCanvas = FigureCanvasTkAgg(self.__fig, master=self.__drawplotFrame)
问题是,在运行应用程序并退出时,python32.exe仍保留在我的进程窗口中,并将阻塞我的计算机。但是,注释掉这三行代码将允许我的应用程序退出,进程将正确终止。这些行会对我的应用程序做些什么来阻止进程在应用程序完成后结束?谢谢
编辑
内存泄漏似乎只由self.__fig = plt.figure(figsize=(16, 11))
行引起。我需要在离开前用plt来解构吗?在
我遇到了内存泄漏的问题,我想我找到了解决办法。在我的方法中,我创建了一个框架,然后将其传递给一个绘图函数来完成实际的工作。在这个函数中,我将创建一个新的matplotlib.figure.figure实例,由于某种原因,当函数超出作用域时,它没有被销毁。在
为了解决这个问题,我做了这样的事情:在UuInit_uUu方法中,我不仅创建了框架,还创建了图形(包括轴)和画布:
然后,在绘图方法中
^{pr2}$就这样,漏洞消失了!在
我想这不会是因为我把窗户关上了 如embedding in tk example尝试使用
Figure
:示例用法:
^{pr2}$相关问题 更多 >
编程相关推荐