簡體   English   中英

Qt樹模型與多個父母的項目

[英]Qt tree model with items with multiple parents

我想構建一個樹,其中一個元素可以引用另一個元素。 我想要構建的樹是這樣的:

A
|--- B
|--- C
|    |--- D
|    |--- E
|
|--- F
     |--- P    //this is a "pointer" to C
          |--- D   //first child of C
          |--- E   //second child of C

我發現這個關於我的問題然而,沒有溶液在那里發現。

問題是在我的QAbstractItemModel實現parent()。 復制元素是不可能的,它可能是一個巨大的子樹(我也希望它們在更改時保持同步)。

一個項目在模型中可以有多個父項(真正的父項,以及當前指向它的項目),如何確定當前正確的父項? 目前我只有一個Item*存儲在QModelIndex ,但是當Item*當前為D我無法確定索引是指元素D低於C還是低於P

我希望有一些方法可以解決Qt項目模型中的這一個到n個父子映射。 我希望有一些方法可以做到這一點,否則我將需要實現自己的小部件,我非常希望避免。

您不需要為此編寫自定義小部件。

一種解決方案是包裝您的Items ,這樣模型中的每個條目不僅包含Item* ,還包含一些跟蹤其在樹中的位置的標記。 每個節點現在都是一個單獨的實體(因此您可以輕松實現parent() ),但多個節點可以引用相同的Item

對於每個項目,您可以存儲指向其父項的指針。 當您添加一個孩子一個節點可以給你參考this作為參數傳遞給它的構造函數,你可以設置的項目的父是參考。

謝謝大家,我只是實現了一個包含多個父項的項目樹視圖。 正如Tom W所說,將我的模型數據包裝到treeitem。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM