2012-12-17 97 views
0

我想用Qt實現一個類似Visual Studio解決方案資源管理器的樹視圖。該樹用於表示稱爲「項目」的外部數據。我想使用Qt模型/視圖體系結構。如何用Qt實現類似visual studio solution explorer的樹視圖?

(1)QTreeView用於視圖,模型是從QAbstractItemModel派生的,它包含一個指向項目對象的指針。 (2)目錄下的項目按其名稱排序。在目錄下添加項目時,它會自動放在正確的位置。 (3)雙擊樹中的項目時,會彈出一個對話框進行編輯。

任何好的方法來實現(2)和(3)。非常感謝!

回答

1

廣告2)看看這裏可能會有所幫助:http://doc.qt.digia.com/qt/qsortfilterproxymodel.html。它包含對項目實施更復雜的排序和過濾的示例。

Ad 3)覆蓋QTreeView :: mouseDoubleClickEvent()。

只是一個側面說明,作爲替代方案,您可以使用QTreeWidget和QTreeWidgetItem,在這種情況下,您可能需要遍歷樹並直接在您想要的位置插入子項。

+0

謝謝您的建議。我想知道使用QTreeWidget的好處。我也需要使用數據小部件映射器。是否可以使用QTreeWidget來使用它?對於目錄項目,雙擊時,我希望看到目錄下所有項目的表格視圖。我是否需要爲原始模型的表格視圖創建一個模型?有什麼好的建議來實施它?再次感謝! – user1899020

+1

如果你不想關心底層數據,QTreeWidget會爲你提供一些額外的項目靈活性。一般來說,你可能更喜歡堅持模型/查看大部分時間。如果你會做很多重新安排,改變父母並且找不到一個好的底層結構,那麼直接使用QTreeWidget可能會更容易。在這種情況下,請務必查看[這裏](http://qt-project.org/doc/qt-4.8/itemviews-simpletreemodel.html)以獲取基本實施準則。至於可重用性 - 你可以使用相同的模型並用不同的根來初始化 - 例如。 QDir的完整路徑。 – ellimilial

相關問題