我正在使用QTreeView来显示项目的层次结构。像这样的东西
Child 1
Child 2
Child 3
Child a
Child b
Child c
Child 4
Child d
诀窍是:Child 3和Child 4的孩子是动态列表。因此,任何一个都可以有任意数量的孩子。我还希望能够重命名每个节点,但是对于Child 3和Child 4的子节点,正确的名称有不同的规则。
我开始设置setItemDelegateForRow,但当然这不起作用,因为孩子们在树中上下移动,因为其他人被添加/删除。
我希望有一种方法可以将ItemDelegate归属为QStandardItem,但似乎不可能。
有什么建议吗?
答案 0 :(得分:1)
经过大量的调查和思考,我们找到了一个并不可怕的解决方案。
当树中的选择发生变化时,我们会添加一个检查,并根据选择调用setItemDelegate(),并为树中所选节点传递所需的委托。