2016-07-31 48 views
1

enter image description here在兩個不同視圖中顯示一個數據樹

大家好。

  1. 我有一個項目樹如上圖​​所示(項目樹)。
  2. 我需要以圖像(視圖)上顯示的方式顯示此樹。它有兩個視圖,樹視圖和列表視圖。樹視圖應顯示整個項目樹,列表視圖應顯示樹視圖中所選項目的屬性。 (在圖像上顯示貓物品的屬性)
  3. 它現在實現的方式顯示在圖像的「當前實現」部分。 TreeModel包含項目樹,並且當您單擊TreeView中的項目時,當前項目將被髮送到ListModel以顯示其屬性。

我在這裏遇到的問題是在兩個視圖中項目都是可編輯的。在樹狀視圖中,您可以編輯項目的名稱,並且此更改也應顯示在列表視圖中。對於相反的方向也是一樣。更改Cat項目的名稱應反映在treeView貓項目上。 由於它是兩種不同的模型,只有當您將鼠標懸停在另一個視圖上時纔會進行更改。 我目前所做的是在一個視圖中更改的項目,我通過QModelIndex :: match()搜索另一個視圖中的項目,然後通過發出dataChanged()更新該視圖的一部分。我不確定這是一個好方法。所以如果你可以給我一些關於如何做得更好的想法。 謝謝。

回答

1

您應該只有一個模型。您只需要QAbstractItemView::setRootIndex方法:您可以將樹中的當前項設置爲表視圖的根。或者,您可以使用代理視圖模型來調整數據以便以特定形式顯示。

+0

這將工作。謝謝 –

相關問題