【发布时间】:2011-03-17 16:19:42
【问题描述】:
可能是绑定 (SIP) 甚至是 python,但我遇到了 Qt (pyqt4) 的问题。
我有一个 QTabWidget,我在里面放了一个可以关闭的小部件。
我有一个分配大约 400mb 内存的小部件。我没有设置父母,我打电话给deleteLater() 关闭但没有任何反应。连调用python的gc都不行:
现在,当从 QTabWidget 关闭小部件而不使用 deleteLater() 时,分配的内存越来越多。所以假设我打开了 4 个内存密集型小部件的选项卡,我使用了大约 1.6GB 的内存。如果我将它们全部关闭并打开一个新的,我现在的内存使用量高达 2GB。
如果我使用deleteLater(),在关闭 4 个标签后,我打开一个新标签不会达到 2GB,那么我必须打开 5 个标签。但是,这是问题,即使所有小部件都已关闭,并且已调用deleteLater,仍为进程(python)分配了1.6GB。
谢谢
【问题讨论】:
标签: python qt garbage-collection pyqt4