PyQt5模型/视图-一个模型,两个视图

问题描述 投票:0回答:1

我正在使用PyQt5设计应用程序。我需要在两个表上显示相同的数据,但在每个表上以不同的方式显示。那是:第一个表是可编辑的。可以编辑几个元素(它们的名称,值等)

enter image description here

但是,第二个表需要在垂直标题上显示第一个表的第一列(元素名称),而第一个表的一个列(在此示例中为第三个)显示为唯一行:

((我还没有实现,我为了更好的理解而画了它)

enter image description here

为了使数据在两个表之间保持一致(并且在内部,因为表中的值用于其他操作),我认为使用模型/架构是最好的方法。我已经开始为第一个表实现模型(继承QAbstractTableModel),但是对于每个表,此模型类中的方法(数据,rowCount,columnCount,...)应该非常不同。

我应该如何解决这个问题?我应该为第二个表创建自定义View类吗?

python model-view-controller pyqt pyqt5
1个回答
0
投票

设计中缺少的部分是用于完整的modelview-view模型流程的观察者设计模式实现。您可以实现自己的可观察数据容器以here的形式绑定到多个视图或者您可以使用pypi的观察者第3方库。我建议实现自己的可观察数据容器,以更好地管理将来的更改,例如像问题中那样转换表视图。

© www.soinside.com 2019 - 2024. All rights reserved.