Qt模型视图中的相互依赖模型

时间:2014-08-22 01:16:33

标签: qt design-patterns model-view-controller model-view

如何使用Qt的Model-View框架实现相互依赖的模型?具体来说,如何创建包含引用另一个模型中数据的字段的模型?我希望在第一个模型中更改/删除的数据传播到第二个模型中的从属字段。

让我们举例说,我有一个名为BookListModel的模型,其中包含一系列书籍。我有一个名为ReaderTableModel的第二个模型,它包含一个读者(名字)列表和他们正在阅读的书。我希望这些书籍能够引用BookListModel的相应索引,以及传播到ReaderTableModel中相应条目的所有更改。

Qt有这种机制吗?我可以在另一个模型中存储QPersistentModelIndex吗?

1 个答案:

答案 0 :(得分:3)

考虑模型适应的数据如何相关可能会很好。如果允许模型在更改数据源时更新它们,并在数据源发生更改时自行更新,则不必担心BookListModel和ReaderTableModel之间的交互。

模式如下所示:当BookListModel更改时,它将更新其包含书籍数据的数据源。然后,您将从每个读者的数据源更新ReaderTableModel的书籍数据。

此模式遵循Qt最佳实践,将模型视为数据适配器,而不是将它们用作数据存储。 http://qt-project.org/doc/note_revisions/13/174/view