我正在寻找一种从模型中的特定数据片段创建QModelIndex的方法。我可以通过以下方式从QModelIndex转到数据项:
CustomData *data = static_cast<CustomData *>(modelIndex.internalPointer());
但我正在寻找一个反函数:
QModelIndex *index = createIndex(data); // ??
我在我的数据之间实现了非常类似于简单树模型示例(http://doc.qt.io/qt-5/qtwidgets-itemviews-simpletreemodel-example.html)的链接。我的视图正确显示数据,但存在相当大的滞后。我想发出dataChanged(QModelIndex,QModelIndex)来立即查看视图的更新,因为我认为滞后是由于等待视图更新。
在链接的示例中,我试图从TreeItem到QTreeModel中的相应索引。
答案 0 :(得分:-1)
你不能使用传统的标记,因为在模型/视图编程中他们不会留下来,除非你使用:
QPersistentModelIndex
http://doc.qt.io/qt-5/qpersistentmodelindex.html#details
此外,Model / View编程还引入了许多新的范例。关于它的文档和使用它有一个学习曲线...阅读几次,并尝试使用与Qt Creator捆绑使用它们的示例。
QPersistentModelIndex
http://doc.qt.io/qt-5/model-view-programming.html#using-model-indexes
模型索引提供对信息的临时引用, 并可用于通过模型检索或修改数据。自模特 可能会不时重组其内部结构,模型 索引可能变得无效,不应存储。如果是长期的 需要引用一条信息,一个持久的模型 必须创建索引。这提供了对信息的参考 该模型保持最新。提供临时模型索引 由
QModelIndex
类和持久性模型索引提供QPersistentModelIndex
班。获取与数据项对应的模型索引,三个 必须为模型指定属性:行号,列 number,以及父项的模型索引......