gpt4 book ai didi

c++ - 具有多个父项目的 Qt 树模型

转载 作者:太空狗 更新时间:2023-10-29 23:07:31 31 4
gpt4 key购买 nike

我想构建一棵树,其中一个元素可以引用另一个元素。我要 build 的树是像这样:

A
|--- B
|--- C
| |--- D
| |--- E
|
|--- F
|--- P //this is a "pointer" to C
|--- D //first child of C
|--- E //second child of C

我找到了 thisthis关于我的问题,但是在那里没有找到解决方案。

问题是在我的 QAbstractItemModel 中实现 parent()。复制元素是不可能的,它可能是一个巨大的子树(我也希望它们在更改时保持同步)。

一个项目在模型中可以有多个父级(真正的父级,以及当前指向它的项目),如何确定当前正确的父级?目前我只有一个 Item* 存储在 QModelIndex 中,但是当 Item* 当前是 D 我可以不知道索引是指 C 下的元素 D 还是 P 下的元素。

我希望有一些方法可以解决 Qt 项目模型中的一对 n 父子映射。我希望有某种方法可以做到这一点,否则我将需要实现我自己非常想避免的小部件。

最佳答案

您不需要为此编写自定义小部件。

一个解决方案是包装您的Items,这样您模型中的每个条目不仅包含一个Item*,而且还包含一些标记,用于跟踪它在那个树。每个节点现在都是一个单独的实体(因此您可以轻松实现 parent()),但多个节点可以引用同一个 Item

关于c++ - 具有多个父项目的 Qt 树模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677404/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com