2010-05-22 45 views
2

我正在编写一个IRC客户端(是的另一个)。长话短说。我正在写一个服务器对话 ,保持这个列表:在Qt中创建一个复杂的树模型

 
Identity 
    Networks 
     Channels 
     Addresses 

我有3个不同的列表视图,这将是为网络,渠道和地址。 当用户更改身份(组合框)时。网络列表视图将查找该特定身份的所有网络。加载网络后,它会自动选择第一个网络,然后加载该特定网络的所有通道和地址。

问题是我想为1个模型有3个视图,以尽量减少所有内存和数据的加载。这样可以更容易管理,而不需要做大量的工作。

如果你看QColumnView它是一样的确切的事情。但是我不需要将它放在一个确切的页面上,因为视图位于完全不同的选项卡上,以便更容易地通过服务器对话。

我想知道什么是处理这种复杂性的最佳方法。信息存储在SQLite数据库中。我已经编写了类来提取和存储它。只是建模是这个解决方案的痛苦部分。

回答

0

这样做的最好方法就是动态加载模型。当组合框更改标识时。删除NetworkList中的所有项目,然后重新填充它,并删除其中的所有网络。

1

我会制作一个TreeModel,然后使用QSortFilterProxyModel()在其上显示三个不同的视图。

相关问题