2011-05-03 85 views
2

我使用addItem(QListWidetItem *)方法將堆上的項目添加到QListWidget。QT QListWidget.addItem(..) - 當該項目被釋放或QT處理它

我找不到任何文檔指示QT是否管理項目內存,並在項目從列表中刪除時將其釋放,或者如果我的應用程序代碼應該跟蹤和刪除項目。

有什麼要求?任何人都可以指導我簡化關於QT和內存管理的文檔以避免泄漏。

+0

發現這回答我的問題。 [link](http://doc.trolltech.com/4.2/objecttrees.html) – mattnz 2011-05-03 04:47:46

+0

此外,還發現添加QAction到QMenu的文檔明確指出QMenu不承擔該項目的所有權。因此,當QT文檔沒有提到所有權時,它似乎意味着QWidget項目確實擁有所有權。 – mattnz 2011-05-04 07:44:40

回答

4

該文檔對此很粗略。 事實上,QListWidget獲取對該項目的所有權並將其刪除,或者嘗試將其刪除,例如,如果您的視圖爲clear()

我在遇到類似問題後,通過查看Qt代碼瞭解了這一點。 在文檔中唯一的提示是發佈了警告,您不能兩次添加相同的項目。