我正在研究一个QAbstractItemModel
插入到QTreeView
. 它具有递归Name = Value
类型结构——任何索引都可以有自己的子树。这在左侧很好,因为几乎每个树视图都是这样工作的。问题是有时我只想要右侧的子树 - 值列表。正如我现在拥有的那样,它似乎应该可以工作,但是 Qt 从来没有要求rowCount()
右侧,也从来没有意识到那里应该有一个子树。
我现在拥有的解决方案基本上是为此创建一个单独的模型,并setIndexWidget
在每次发生这种情况时给它一个单独的树视图。这很好,但我真的很想让子树显示在右侧,而不必到处乱扔树视图。我的模型回应说那里有子树,但 Qt 从不要求它们。
如果这有点不清楚,这是我想要完成的基本想法:
- Root |
- Name 1 | Value
Name 2 | - Compound Value
| Sub-value 1
| Sub-value 2
Name 3 | + Compound Value (collapsed)
+ Name 4 | Value
事实上,复合值不会在它们旁边获得+
' 和',因为 Qt 从不调用或在该列中,即使我的模型会返回是的,如果被问到,有孩子。-
hasChildren()
rowCount()
如果我最终不得不给它一个子树视图,那很好。我只是想确定没有更好的方法可以先做到这一点。