首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个不同的QTreeViews和一个共享的QStandardItemModel

两个不同的QTreeViews和一个共享的QStandardItemModel
EN

Stack Overflow用户
提问于 2020-06-25 13:56:36
回答 1查看 55关注 0票数 0

我有一个简单的任务,但我正在努力寻找正确的方法来实现它:

QTreeViews.

  • The

  • I希望one共享QStandardItemModel包含一个树结构将显示在两个不同的

  • first QTreeView中,显示模型为-原样,并允许用户添加、删除和重新排列项目。单击一个项目会在QWidget下面的QStackedWidget中显示一个与项目相关的QTreeView。一些项目类型也可以重命名。

  • second QTreeView显示相同的树模型,但是默认情况下所有项都是灰色的。然后处理器将沿着树结构移动,并处理每个项。无论何时处理某一项,都不应再将其灰度化。那些没有灰化的项目应该是可点击的,以便在查看器中显示项目--相应的处理图像。每当在第一个QTreeView中发生更改时,处理器就会从更改的位置再开始处理。

如何实现两个QTreeViews的不同外观和功能?我是否将自定义QItemDelegates分配给每个QTreeView?我应该使用QIdentityProxyModel作为第二个QTreeView吗?

EN

回答 1

Stack Overflow用户

发布于 2020-06-25 14:36:39

这两种模型只需要使用QStandardItemModel,因为它们存储相同的信息,所以如果您希望它们看起来不同,那么就必须使用委托。

如果您希望在单击视图时执行某些操作,那么这不依赖于模型,但是您必须使用独立于另一个视图的视图单击信号。

对于第二个视图,如果需要委托更改颜色,则逻辑是使用一个角色来指示该项是否已被处理,然后根据该角色更改颜色。当您说“第一个QTreeView中的更改”时,您实际上应该说“模型中的更改”,因此只需要使用dataChanged信号,在处理之前和之后通过更改角色状态来处理项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62577076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档