C++ 如何在单个树状视图中使用外部数据显示两个Qt模型

C++ 如何在单个树状视图中使用外部数据显示两个Qt模型,c++,model-view-controller,qt4,C++,Model View Controller,Qt4,我正在做一个C++/Qt项目。我有两个业务模型(一个是层次树状结构,即电影类别/子类别,另一个是简单向量,即只能属于子类别的电影标题),我希望在唯一的树状视图中显示这两个模型,其中叶节点可以属于两个模型,非叶节点属于第一个模型。除此视图外,我还希望在特定于模型的视图中显示第一个模型的树视图和第二个模型的列表视图 我考虑了3种方法: 1) 为每个业务模型创建一个QabstracteModel,另一个用于表示混合模型。因此,每个视图仅与一个模型关联 2) 为每个业务模型只创建两个Qabstracte

我正在做一个C++/Qt项目。我有两个业务模型(一个是层次树状结构,即电影类别/子类别,另一个是简单向量,即只能属于子类别的电影标题),我希望在唯一的树状视图中显示这两个模型,其中叶节点可以属于两个模型,非叶节点属于第一个模型。除此视图外,我还希望在特定于模型的视图中显示第一个模型的树视图和第二个模型的列表视图

我考虑了3种方法:

1) 为每个业务模型创建一个QabstracteModel,另一个用于表示混合模型。因此,每个视图仅与一个模型关联

2) 为每个业务模型只创建两个QabstracteModel,并实现处理该信息的特殊视图

3) 使用QStandardItem模型并为我的两个业务模型元素实现QStandardItem的子类

因为我使用的是外部数据,所以如果可能的话,我不想复制任何信息


你认为最好/正确的方法是什么?有任何实施建议吗?

QDataWidgetMapper是您最好的选择。

制作一个数据模型。我将创建一个树模型,这是您选择的选项c,但可以实现您自己的树模型

对于列表视图,请查看是否也无法在其上设置树模型,并使用仅显示要查看的项目列表。我知道它适用于表视图和树视图,所以我假设它也适用于列表视图