2
我正在創建一個工具使用pyQt
但面臨內存泄漏問題。PyQt:類對象刪除,調用析構函數但內存不釋放
當我使用自己的垃圾從UI中刪除包含python和pyQt成員變量的對象時,它會調用相應類的析構函數。但是當我從終端運行'top'命令時,內存不會被釋放,並且只要我使用應用程序就會佔用內存,並最終崩潰。
我正在創建一個工具使用pyQt
但面臨內存泄漏問題。PyQt:類對象刪除,調用析構函數但內存不釋放
當我使用自己的垃圾從UI中刪除包含python和pyQt成員變量的對象時,它會調用相應類的析構函數。但是當我從終端運行'top'命令時,內存不會被釋放,並且只要我使用應用程序就會佔用內存,並最終崩潰。
我以前就已經遇到過這個問題。 我用這種方法,它爲我工作得很好:
widget.setParent(None)
widget.deleteLater()
希望它能幫助!
編輯:
向我們展示了一個小程序,演示了這個問題。 – 2013-02-13 08:01:29
通常會出現這些問題,因爲C++對象仍在被引用。如果您已將QObject添加到QT類層次結構中,那麼在刪除引用程序或引用中斷之前它不會被銷燬。我很迷惑你的意思是析構函數 - 這實際上是C++析構函數還是Python __del__? – xioxox 2013-02-13 10:11:56
析構函數是python del方法。 是的,我也發現由於某些問題,QObject沒有被刪除。但我無法找到如何刪除相同和可用內存的方法。 – 2013-02-14 07:39:29