大家好。
我遇到的问题是,在两个视图中,项目都是可编辑的。在树视图中,您可以编辑项目的名称,此更改也应显示在列表视图中。相反的方向也是如此。更改Cat项的名称应反映在treeView cat项上。 由于它是两个不同的模型,因此仅当您将鼠标悬停在另一个视图上时才会进行更改。 我目前所做的是对于其中一个视图中的已更改项目,我通过QModelIndex :: match()在另一个视图中搜索项目,然后通过emit dataChanged()更新视图的该部分。我不确定这是一个好方法。所以,如果你可以给我一些关于如何更好地完成这项工作的想法。 谢谢。
答案 0 :(得分:1)
您应该只有一个型号。您只需要QAbstractItemView::setRootIndex
方法:您可以将树中的当前项设置为表视图的根。或者,您可以使用代理视图模型来调整数据以便以特定形式显示。