根據QGraphicsItem destructor documentation,「在銷燬項目之前將項目從QGraphicsScene中移除效率更高。」爲什麼在銷燬QGraphicsItem之前從它的場景中刪除QGraphicsItem更有效?
這是爲什麼?我想不出它是如何產生影響的。如果它確實有所作爲,應該不是的QGraphicsItem析構函數只要致電:
if (scene() != NULL)
scene()->removeItem(this);
我查源,這似乎並沒有這樣的情況,雖然有時我有一個艱難的時間瞭解Qt的來源。 編輯:請參閱jdi的回答。
謝謝你。我再次檢查了源,並且實際上有一行檢查場景是否存在,如果是,則調用'd_ptr-> scene-> d_func() - > removeItemHelper(this);'。我想那一定是吧。所以看起來你是對的,說明可能有點誤導(無論是或者我是一個doofus)。 – Anthony
@Anthony:我打算帶着誤導:-)。文檔是有用的,如果它讓你感到困惑,那麼它是一個有效的觀察。做好通過源頭檢查確認。 – jdi