我有一个QAbstractModel,它基本上是从Qt EditableTreeModel示例派生的树结构。我已经调整它以显示包含抽象数据对象的树结构,并且只能以编程方式更新,而不是由用户通过View进行更新。
当您需要刷新不在根目录的部分时,问题是确定QModelIndex。 Qt似乎只提供与点击等视图事件相关的QModelIndexes。我的模型可以很容易地找到它需要刷新的子部分,但似乎没有与视图无关的方法来获取insertRows,removeRows等所需的QModelIndex。
This question有一个回复建议迭代数据项来查找QModelIndex,但我看不到查看的方法 - 独立定义QPersistentModelIndex的根(如this所示不能只为root子节点使用默认的QModelIndex构造函数。)
因此,简而言之,我如何在不需要View相关事件的情况下找到QModelIndex,或者以编程方式将根定义为QPersistentModelIndex,同样没有View或用户输入。
或者,是否有选项可以使用模型和非可视化视图来获取QModelIndexes?我需要模型来了解是否显示视图。
干杯全部
答案 0 :(得分:0)
您可以使用QAbstractItemModel::index(int row, int column, const QModelIndex & parent)
直接从模型中获取QModelIndex
。如果要查找不在根目录的索引,请使用parent
参数。