当模型对象在外部发生变化时,我有一个关于QTreeView(或QAbstractItemView的任何子类)更新的简单问题。假设一个列表显示了QAbstractItemModel的子类,并且该模型的一个项目在列表窗口之外发生了更改,我们希望使用更改来更新列表。实现这样的目标的通常策略是什么?我查看了QAbstractItemModel的 Qt 文档,当模型中的数据发生更改时,会(或应该)发出一个名为“ dataChanged ”的信号。但是由于这个信号(作为所有 QAbstractItemModel 函数/信号/插槽)与QModelIndex,正如文档明确指出的那样,这不是持久的,我是否应该以某种方式存储我的数据到QPersistentModelIndex(es)的映射,所以当我的数据更改时,我将能够找到相应的QPersistenModelIndex并将其用作各种参数QAbstractItemModel函数 ? 这就是QPersistentModelIndex (es) 的用途吗?还是我错过了什么?
谢谢你。
ps:我想我可以重新加载QTreeView,但是我不知道哪些项目被扩展或哪些被选中。是否有解决此问题并重新加载列表的策略?