2010-05-22 63 views
2

我正在編寫一個IRC客戶端(是的另一個)。長話短說。我正在寫一個服務器對話 ,保持這個列表:在Qt中創建一個複雜的樹模型

 
Identity 
    Networks 
     Channels 
     Addresses 

我有3個不同的列表視圖,這將是爲網絡,渠道和地址。 當用戶更改身份(組合框)時。網絡列表視圖將查找該特定身份的所有網絡。加載網絡後,它會自動選擇第一個網絡,然後加載該特定網絡的所有通道和地址。

問題是我想爲1個模型有3個視圖,以儘量減少所有內存和數據的加載。這樣可以更容易管理,而不需要做大量的工作。

如果你看QColumnView它是一樣的確切的事情。但是我不需要將它放在一個確切的頁面上,因爲視圖位於完全不同的選項卡上,以便更容易地通過服務器對話。

我想知道什麼是處理這種複雜性的最佳方法。信息存儲在SQLite數據庫中。我已經編寫了類來提取和存儲它。只是建模是這個解決方案的痛苦部分。

回答

0

這樣做的最好方法就是動態加載模型。當組合框更改標識時。刪除NetworkList中的所有項目,然後重新填充它,並刪除其中的所有網絡。

1

我會製作一個TreeModel,然後使用QSortFilterProxyModel()在其上顯示三個不同的視圖。