【发布时间】:2020-10-16 00:18:15
【问题描述】:
我有一个简单的任务,但正在努力寻找正确的实施方式:
- 我希望一个共享的 QStandardItemModel 包含一个树结构,以显示在两个不同的 QTreeView 中。
- 第一个 QTreeView 按原样显示模型,并允许用户添加、删除和重新排列项目。单击一个项目会在 QTreeView 下方的 QStackedWidget 中显示一个与项目相关的 QWidget。某些项目类型也可以重命名。
- 第二个 QTreeView 显示相同的树模型,但默认情况下所有项目都显示为灰色。然后处理器将沿着树结构移动并处理每个项目。每当处理一个项目时,它不应再显示为灰色。那些没有变灰的项目应该是可点击的,以在查看器中显示项目对应的处理图像。每当在第一个 QTreeView 中进行更改时,处理器就会再次从更改的位置开始处理。
如何实现两个 QTreeView 的不同外观和功能?我是否将自定义 QItemDelegates 分配给每个 QTreeView?我应该为第二个 QTreeView 使用 QIdentityProxyModel 吗?
【问题讨论】:
标签: python pyqt pyqt5 qtreeview qstandarditemmodel