2013-10-19 98 views
4

QML從可視化樹(QtQuick場景圖)中引入一個單獨的所有權(QObject)樹。QML:獲取QObject父項

  • parent返回視覺父母。
  • children返回可視兒童。
  • data返回QObject孩子。

但是,如何訪問QObject家長?我打算動態創建和銷燬包含自定義類型的嵌套佈局,因此我需要管理QObject樹 - 只是使用可視化樹會導致「錯誤」的對象在重新設置和刪除後消失。

回答

1

如果你實際上不知道知道該項目的父,我不認爲你可以找到沒有進入C++。如果您只想更改項目的父項目QObject,那麼您應該可以在QML中將其添加到其新父項的data屬性中。 (這也將如適用改變它的視覺父。)

引述the Qt Quick Concepts文檔:

分配到項目的數據屬性的任何對象將成爲其QObject的層次結構中的項目的孩子,對內存管理目的。此外,如果添加到data屬性的對象是Item類型,則它也被分配給Item :: children屬性,併成爲可視場景層次結構中項目的子項。 (大多數Qt Quick層次結構爬網算法,尤其是渲染算法,只考慮可視父層次結構。)