问题标签 [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.

0 投票
3 回答
10565 浏览

c++ - 将 QModelIndex 转换为 QString

有没有办法将 QModelIndex 转换为 QString?这背后的主要目标是我想使用动态生成的 QListView-Items 的内容。

这甚至是获取当前选定项目的正确方法吗?

提前致谢!

0 投票
1 回答
1633 浏览

qt - 在 Qt 中如何对 QModelIndex 的直接子索引进行排序

我正在编写一个 C++ 应用程序,它使用 Qt 类来处理某些数据模型。为此,我继承自QAbstractItemModel

在某些时候,我的应用程序中需要一个排序/过滤选项,所以我还创建了一个继承自的类QSortFilterProxyModel

为了实现排序,我使用了默认QSortFilterProxyModel::sort()方法(我没有在我的代理模型类中重新实现它)并且有一段时间它似乎可以工作。

但在某些时候,我注意到实际QSortFilterProxyModel::sort()方法对整个模型进行排序,而我需要的是仅对某个索引的直接子项进行排序。

我试图重新实现类的sort()方法EventModel,但过了一会儿我意识到这QSortFilterProxyModel::sort()根本不是指它。另一方面,我不确定如何以安全的方式重新排列索引,以便显示模型的视图不会崩溃。

我认为一定有一种方法可以只对某个的直接孩子进行排序QModelIndex,但我还没有找到。

是否有任何教程/示例可以演示我的案例的可能解决方案,或有关如何做到这一点的一些指导方针?

问候

0 投票
1 回答
5575 浏览

qt4 - Qt - 如何设置从 64 开始而不是从 0 开始的 QTableWidget 行索引?

0 投票
2 回答
6530 浏览

qt - QAbstractTableModel:index() 与 createIndex()

当子类化 QAbstractTableModel 时,为给定的行和列获取 QModelIndex 的正确方法是什么(例如,提供方便的方法 data(int row, int column))?

有 index() 和 createIndex() - 他们似乎都这样做?

例子:

0 投票
1 回答
84 浏览

python - 为什么我不能在表格的中央单元格中检索我想要的数据?

基本上在第一个函数中,我得到了使用鼠标选择的单元格,我可以通过 data() 方法从中检索数据并将其显示在第一个函数中。

但是,我想稍微改变一下,当我选择一个单元格时,它将显示该行中第一个单元格(第一列)的数据。由于我已经有了所选单元格的索引(currentCell),我只需实例化一个新的 ModelIndex 对象并将所选索引分配给它。然后我将对象的列更改为 0。最后,我想使用 data() mtohod 用新对象检索数据,但那里什么都没有。它是空的。我花了很多时间在上面,不知道是什么问题。感谢任何提供一些努力来帮助和阅读的人:)

0 投票
3 回答
1474 浏览

qt - 如何在 QAbstractTableModel::data() 中正确访问 QMap

我得到了一个带有标识符和相应对象的 QMap。子类化 QAbstractTableModel::data() 时,您将分别获得带有行和列的 QModelIndex。每行应该代表一个对象(QAbstractTableModel::rowCount() 是 myMap->size())。

通过以下方式获取当前对象是否合法

由于(未排序的)地图的标识符被绕过了,这是否意味着(排序、插入)?我的意思是对于 QAbstractTableModel::setData() 我需要绕过相同的地图标识符?!谢谢。

0 投票
0 回答
1437 浏览

qt - 我们应该如何在调用 beginInsertRows(parent, first, last) 时创建父 QModelIndex?

这是这个问题的更具体的版本。

我想向视图报告我将在我的模型中插入一些行。有两种调用方式beginInsertRows

有一个区别:在第二个变体中,QModelIndex将指针存储到我们的模型内部。在 Qml 内部:

语句的主体if不会被执行,因为它似乎rootIndex总是不存储指向模型的指针(即它存储 NULL 代替)

我已经创建了测试 Qt5 应用程序

所以,我的问题是: 它是错误还是功能?有人在我之前尝试过这个错误的调用吗?

0 投票
5 回答
8387 浏览

qt - 如何在 QAbstractItemView 中获取可见 QModelIndex 列表

有什么方法可以获取当前可见项目的列表QAbstractItemView吗?并且,如果可能的话,接收有关更改此列表的任何通知。

Upd:我问QAbstractItemViewQTreeView是非简单结构,而不是QTableView.

Upd2:我正在使用复选框实现树视图模型。我想要下一个行为(检查/取消检查相同):

  • 如果选中其中一个复选框 - 则必须选中所有子项
  • 如果所有子复选框都被选中 - 那么父复选框也应该被选中。对于父母的父母也是如此,依此类推......

检查状态由外部数据源监控/修改,因此我需要一种机制来更新所有更改的子/父。dataChanged信号对我来说是不够的,因为构建所有更改QModelIndex以进行更新的列表非常广泛。而且根本没有必要,因为所有新数据都将从QAbstractItemModel::data.

我发现下一个肮脏的黑客来更新所有项目:emit dataChanged( QModelIndex(), QModelIndex() );但它没有记录无效索引。

所以,我需要一种方法来强制所有可见项目用新数据重新绘制它们的内容。

0 投票
3 回答
9378 浏览

qt - 从 QTableView 读取和写入文件

如何读取和写入文本文件日期输入到 QTableView?

这就是我所拥有的,但我想在将数据添加到表时保存数据,并且当然能够在重新打开应用程序时将其读回。有什么教程可以参考吗?

非常感谢

编辑 - - - - - - - - - - - - - - - -

这对我有用:

添加功能:

保存功能:

加载功能:

0 投票
0 回答
172 浏览

qt - QModelIndex::parent 在调试程序时导致分段错误

下面的代码可以正常工作。但是当我尝试调试它时,我在标有“*”的字符串中出现分段错误错误。我做错了什么?

要连接信号和插槽,我使用下一个构造: