Qt -获得一个没有视图的QModelIndex
Qt - Getting a QModelIndex without a View
我有一个QAbstractModel,它基本上是从Qt EditableTreeModel示例派生的树结构。我对它进行了调整,以显示包含抽象数据对象的树形结构,并且只能以编程方式更新,而不能由用户通过视图进行更新。
问题是在需要刷新不在根的部分时确定QModelIndex。Qt似乎只提供与视图事件(如点击)相关的QModelIndexes。我的模型可以很容易地找到它需要刷新的子部分,但似乎没有独立于视图的方法来获取insertRows、removeRows等所需的QModelIndex。
这个问题有一个回答建议通过数据项迭代来找到QModelIndex,但是我看不到一种方法来独立地定义QPersistentModelIndex的根(因为这表明您不能仅为根子节点使用默认的QModelIndex构造函数)。
所以,简而言之,我如何在不需要View相关事件的情况下找到QModelIndex,或者如何以编程方式将根定义为QPersistentModelIndex,同样不需要View或用户输入。
或者,是否可以选择使用模型和非可视化视图来启用QModelIndexes的获取?我需要模型是最新的,无论视图是否显示。
欢呼所有的
您可以使用QAbstractItemModel::index(int row, int column, const QModelIndex & parent)
直接从您的模型获得QModelIndex
。如果您想查找不在根目录的索引,请使用parent
参数。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 在另一个类视图中添加最多2个图表的正确方法是什么
- 是否存在一个范围::视图::group_by对应项,它将所有元素都考虑在内,而不是只考虑连续的元素
- Qt C++ - 在一个视图中显示来自多个SQLite表的数据
- OPENCV是否有一个软件包将3D点转换为2D自上而下的视图
- 如何在Qt中创建一个持续正确的只读模型/视图架构
- 在显示不同数据列的两个视图之间共享一个模型
- 如何从另一个线程更新列表视图
- 当从表视图中选择一行时,为组合框指定一个int值
- Qt -获得一个没有视图的QModelIndex
- 在OpenGL中保存一个特定的相机视图为图像
- 当单击视图中的项时,从另一个小部件访问自定义模型数据
- MFC在应用程序的所有视图上共享一个静态标签
- 使用MVP,如何从与同一模型对象链接的另一个视图创建视图
- Qt5 QtQuick 2.0 (Qt Quick Application) 在一个窗口中切换视图(QML 文件)
- 在QGraphicsView中设置QGraphicsScene的精确视图区域(rect) -一个更好的fitInView
- 哪个函数可以用来在Qt的树视图中选择一个项目