如何在 QAbstractProxyModel 中重新排列我的树层次结构?

How do I rearrange my tree hierarchy in an QAbstractProxyModel?

如何在代理模型中重新安排层次结构?

即使我在代理模型中重写我的 rowCount 方法,它似乎只调用一次(对于根项)。之后它再也不会被调用。

我发现在它调用 mapToSource 函数映射索引后,调用的是我的主模型中的 rowCount 方法,而不是代理模型中的方法。如果我更改主模型中的层次结构以匹配我的代理,它也会在代理中绘制子项。

让我想知道是否有可能在代理中操纵层次结构(除了展平它)。

据我所知,QAbstractProxyModel 中的 rowCount 方法在 PySide 中存在错误。很长一段时间以来,我一直在用头撞墙。还没弄明白是怎么回事。

我刚刚实现了 hasChildren 方法,因为我记得我发现了一些关于它的优化方法,以防 rowCount 很重,它只是强制将您的项目标记为旁边需要一个下拉图标。无论如何,测试它(实际上只是直接复制到我的 rowCount 方法)并且我得到了我的下拉图标!

单击下拉菜单,果然我得到了我的子节点。如果我注释掉 hasChildren 方法,并且不做其他更改,我会回到它不再工作的状态(即使 rowCount 已实现并且工作正常)。