繁体   English   中英

内存未解除分配 - PyQt4

[英]Memory not deallocated - PyQt4

它可能是绑定(SIP)甚至python,但我有Qt(pyqt4)的问题。

我有一个QTabWidget,在里面我放了一个可以关闭的小部件。

我有一个小部件,分配大约400mb的内存。 我没有设置父级,我在关闭时调用deleteLater()但没有任何反应。 即使调用python的gc也行不通:

import gc
gc.collect()

现在,在不使用deleteLater()情况下从QTabWidget关闭窗口小部件时,会分配越来越多的内存。 所以假设我打开内存繁重小部件的4个选项卡,我使用大约1.6GB的内存。 如果我关闭它们并打开一个新的,我现在可以使用2GB的内存。

如果我使用deleteLater() ,关闭4个选项卡后,我不打开2GB打开一个新选项卡,然后我必须打开5个选项卡。 但是,这就是问题 ,即使所有小部件都关闭,并且已经调用了deleteLater ,仍然会为进程(python)分配1.6GB。

谢谢

我有这个 - 在某个地方你有一个对你的小部件的引用,并且该引用已被计算...删除该小部件的唯一方法是确保没有剩余的引用,因此python可以垃圾收集它。

至少你最终没有像C ++这样悬挂的引用,这可能导致一些令人讨厌的崩溃......


这实际上很有用 - 如果您创建一个具有其成员的类级别列表的类,您可以回收旧对象并且永远不会对它们进行垃圾回收

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM