问题标签 [qmodelindex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 将 QModelIndex 转换为 QString
有没有办法将 QModelIndex 转换为 QString?这背后的主要目标是我想使用动态生成的 QListView-Items 的内容。
这甚至是获取当前选定项目的正确方法吗?
提前致谢!
qt - 在 Qt 中如何对 QModelIndex 的直接子索引进行排序
我正在编写一个 C++ 应用程序,它使用 Qt 类来处理某些数据模型。为此,我继承自QAbstractItemModel
:
在某些时候,我的应用程序中需要一个排序/过滤选项,所以我还创建了一个继承自的类QSortFilterProxyModel
为了实现排序,我使用了默认QSortFilterProxyModel::sort()
方法(我没有在我的代理模型类中重新实现它)并且有一段时间它似乎可以工作。
但在某些时候,我注意到实际QSortFilterProxyModel::sort()
方法对整个模型进行排序,而我需要的是仅对某个索引的直接子项进行排序。
我试图重新实现类的sort()
方法EventModel
,但过了一会儿我意识到这QSortFilterProxyModel::sort()
根本不是指它。另一方面,我不确定如何以安全的方式重新排列索引,以便显示模型的视图不会崩溃。
我认为一定有一种方法可以只对某个的直接孩子进行排序QModelIndex
,但我还没有找到。
是否有任何教程/示例可以演示我的案例的可能解决方案,或有关如何做到这一点的一些指导方针?
问候
qt - QAbstractTableModel:index() 与 createIndex()
当子类化 QAbstractTableModel 时,为给定的行和列获取 QModelIndex 的正确方法是什么(例如,提供方便的方法 data(int row, int column))?
有 index() 和 createIndex() - 他们似乎都这样做?
例子:
python - 为什么我不能在表格的中央单元格中检索我想要的数据?
基本上在第一个函数中,我得到了使用鼠标选择的单元格,我可以通过 data() 方法从中检索数据并将其显示在第一个函数中。
但是,我想稍微改变一下,当我选择一个单元格时,它将显示该行中第一个单元格(第一列)的数据。由于我已经有了所选单元格的索引(currentCell),我只需实例化一个新的 ModelIndex 对象并将所选索引分配给它。然后我将对象的列更改为 0。最后,我想使用 data() mtohod 用新对象检索数据,但那里什么都没有。它是空的。我花了很多时间在上面,不知道是什么问题。感谢任何提供一些努力来帮助和阅读的人:)
qt - 如何在 QAbstractTableModel::data() 中正确访问 QMap
我得到了一个带有标识符和相应对象的 QMap。子类化 QAbstractTableModel::data() 时,您将分别获得带有行和列的 QModelIndex。每行应该代表一个对象(QAbstractTableModel::rowCount() 是 myMap->size())。
通过以下方式获取当前对象是否合法
由于(未排序的)地图的标识符被绕过了,这是否意味着(排序、插入)?我的意思是对于 QAbstractTableModel::setData() 我需要绕过相同的地图标识符?!谢谢。
qt - 我们应该如何在调用 beginInsertRows(parent, first, last) 时创建父 QModelIndex?
这是这个问题的更具体的版本。
我想向视图报告我将在我的模型中插入一些行。有两种调用方式beginInsertRows
:
和
有一个区别:在第二个变体中,QModelIndex
将指针存储到我们的模型内部。在 Qml 内部:
语句的主体if
不会被执行,因为它似乎rootIndex
总是不存储指向模型的指针(即它存储 NULL 代替)
我已经创建了测试 Qt5 应用程序
所以,我的问题是: 它是错误还是功能?有人在我之前尝试过这个错误的调用吗?
qt - 如何在 QAbstractItemView 中获取可见 QModelIndex 列表
有什么方法可以获取当前可见项目的列表QAbstractItemView
吗?并且,如果可能的话,接收有关更改此列表的任何通知。
Upd:我问QAbstractItemView
的QTreeView
是非简单结构,而不是QTableView
.
Upd2:我正在使用复选框实现树视图模型。我想要下一个行为(检查/取消检查相同):
- 如果选中其中一个复选框 - 则必须选中所有子项
- 如果所有子复选框都被选中 - 那么父复选框也应该被选中。对于父母的父母也是如此,依此类推......
检查状态由外部数据源监控/修改,因此我需要一种机制来更新所有更改的子/父。dataChanged
信号对我来说是不够的,因为构建所有更改QModelIndex
以进行更新的列表非常广泛。而且根本没有必要,因为所有新数据都将从QAbstractItemModel::data
.
我发现下一个肮脏的黑客来更新所有项目:emit dataChanged( QModelIndex(), QModelIndex() );
但它没有记录无效索引。
所以,我需要一种方法来强制所有可见项目用新数据重新绘制它们的内容。
qt - 从 QTableView 读取和写入文件
如何读取和写入文本文件日期输入到 QTableView?
这就是我所拥有的,但我想在将数据添加到表时保存数据,并且当然能够在重新打开应用程序时将其读回。有什么教程可以参考吗?
非常感谢
编辑 - - - - - - - - - - - - - - - -
这对我有用:
添加功能:
保存功能:
加载功能:
qt - QModelIndex::parent 在调试程序时导致分段错误
下面的代码可以正常工作。但是当我尝试调试它时,我在标有“*”的字符串中出现分段错误错误。我做错了什么?
要连接信号和插槽,我使用下一个构造: