2010-09-27 31 views

回答

5

還好吧,我沒有跟蹤這回...它已失去焦點,並且是根據記錄代表團在整個信號鏈已被觸發後

QAbstractItemDelegate創建一個子類創建的編輯器部件將被刪除。它實際上是通過deleteLater()QAbstractItemView中的呼叫刪除的。

有一個持久性編輯器的概念,但我沒有按照任何進一步

0

QObjects一般照顧自己,只要他們的父母設置的任何文件。當您撥打createEditor()並在第一個參數中指定父項時,父項將負責刪除它。

相關文檔可以找到here,特別是說明的第三段。

+0

我知道Qt父子內存管理。在這種情況下,這意味着當有人想要編輯表格項目時創建的所有小部件只會在視圖(本例中的父項)被刪除時纔會清理乾淨,這聽起來不像是一個乾淨的解決方案 – 2010-09-28 09:47:53

+1

現在理解你的關注更好一點。如果這確實是一種行爲,並且很多項目都會被編輯,那麼很多項目都會被創建並留下來。我試圖瀏覽源代碼以查看可能發生的情況,但這不是簡單的代碼瀏覽:)雖然實驗可能會有所幫助。在你的createEditor的實現中,使用一些cout信息將一個插槽連接到新的對象destroy()信號,並查看是否可以知道它們何時被刪除。此外,我會假設一次只能編輯一個項目,也許總是返回相同的項目。對不起,我找不到更多可靠的信息。 – 2010-09-28 13:12:48

+0

我在析構函數上放了一個斷點,然後跟着它,謝謝你的幫助 – 2010-09-28 13:17:53

相關問題