问题标签 [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 投票
1 回答
979 浏览

qt - 如何为列表视图设置数据源以包含自定义数据?(并与 QTableView 关联)

我正在尝试让 listview 和 tableview 一起工作。

listview 必须用于显示,tableview 必须用于编辑数据。表格视图是在弹出窗口小部件中按需创建的(可能永远不需要)。

我在开始时从一个文本文件填充列表视图 - 每行一行,两个条目由一个选项卡分隔。简单的。

表格视图将必须分别编辑 2 列...此外,在单击列表视图时,我必须能够检索拆分的第一部分...

我创建了一个模型子类QStringListModel

在哪里

正确显示EditRole,其他显示空字符串。

似乎QStringListModel无法存储除EditRole.

所以我留下了 2 个选项 - 要么对每个选择进行拆分,也可以在创建表格视图时进行拆分,或者 - 我想尝试但不知道如何 - 创建一个QStandardItemModel可以作为两者的数据源listview 和 tableview,并且可以轻松地在单击时检索我需要的部分数据。

我想我可以简单地使用它来设置 listview 上的数据(就像他们在这里做的那样)。

但这只会设置listview中的第一个字符串,我真的需要两者,我仍然不知道如何检索数据

或者...
在加载部分,尝试:

这有效 - 显示良好并在点击时获得正确的内容 - 但似乎无法用于 tableview。
(而且似乎我正在做两倍的工作,setItem并且setItemData- 从技术上讲,内容存储了 3 次)。

如何让我的列表视图有一个包含 2 个字符串项的数据源,同时显示两者,能够在 tableview 上设置它,并能够在单击时检索第一个项目?

0 投票
1 回答
5954 浏览

qt - 如何遍历 QAbstractItemView 索引?

我想以QAbstractItemView::doubleClicked编程方式为具有特定文本的项目触发插槽。如果可能的话,我想使用QAbstractItemView类而不是它的实现来做到这一点。

此任务归结为循环项目和比较字符串。但是我找不到任何可以给我所有QModelIndexes 的方法。给出任何QModelIndex不带参数的唯一方法是QAbstractItemView::rootIndex. 但是当我查看QModelIndex文档时,我再次看不到访问它的孩子和兄弟姐妹的方法。

那么如何访问所有QModelIndex的esQAbstractItemView呢?

0 投票
1 回答
592 浏览

qt - 反转 QListView 上的选择

我有 QListView 并且我已经在上面设置了一个模型。如何实现反转选择的方法?

我已经尝试制作一个QItemSelection包含我模型的所有项目的新项目以便调用ui.listView->selectionModel()->select(selection, QItemSelectionModel::Toggle);,但我的QItemSelection返回是空的。

我也想为我的模型的每个 QModelIndex 使用相同的方法,但我发现没有办法得到QModelIndex我所有模型的列表。

有任何想法吗?

0 投票
1 回答
144 浏览

qt - 从没有 QModelIndex 的 QTreeView 中删除项目

假设我决定从我的模型中随机删除一些项目。我有对这些项目的引用,但这还不足以正确调用beginRemoveRows()方法。它需要知道每个项目的 QModelIndex。

但是要获取项目的 QModelIndex,我还需要知道父项的 QModelIndex!

只有 RootItem 没有父项,因此不需要 QModelIndex。因此,如果这是正确的做事方式,我需要从那里开始并递归遍历所有子项,直到为每个项目获得适当的 QModelIndex 为止。

有没有更好的方法来获取随机项目的 QModelIndex?

0 投票
1 回答
1076 浏览

c++ - List of visible items from QTreeView

What's the best way to get the list of the currently visible items displayed by a QTreeView? And is it possible to get notifications when it changes?

The data for my model can change asynchronously of the application (data comes from hardware registers). Refreshing that data can be slow, so I want to periodically refresh in a dedicated thread. I don't want to refresh all the items as it would be very inefficient, just the visible ones.

I am aware of this, but in my case the data changes asynchronously so I cannot refresh the items only when setData() is called.

0 投票
1 回答
443 浏览

c++ - 以编程方式在 QAbstractItemView 中选择 QModelIndexes

我试图在给定字符串值的情况下在 Qt 中选择抽象项目视图的项目。我已经编写了QModelIndex根据字符串内容查找任何内容的函数。

我现在正试图将QModelIndex我找到的所有这些 es 放入单个选择中。我的方法签名:

我的实现看起来像这样(但不能正常工作):

问题是,这段代码总是只选择列表中的第一项,例如。因为"B1","C1","A1"它看起来像这样:

图片描述

该表启用了多选:

图片描述

那么如何以编程方式正确选择多个项目?如果您需要findIndexByString,可以在这里找到:https ://github.com/Darker/qt-gui-test/blob/master/results/QAbstractItemViewResult.cpp#L5

0 投票
2 回答
22578 浏览

qt - 创建 QModelIndex

上周我一直在努力创建一个给定行和列的 QModelIndex。

或者,我会满足于更改已经存在的 QModelIndex 中的 row() 的值。

任何帮助,将不胜感激。

编辑:

失败并出现错误:

手头的目标是这样的:

我有一个功能:

在该课程中,我基本上执行以下操作:

所以我的目标是从不同的类调用该函数并将其传递给 QModelIndex,但要使用我指定的行/列创建该索引。

0 投票
1 回答
1270 浏览

c++ - 循环遍历所有模型索引及其子索引会导致堆栈溢出错误

我创建了以下函数来遍历表或树中的所有索引并找到包含所需字符串的索引:

此代码是自包含的,在 Qt 库之外没有任何依赖项。

在外部代码中循环某个模型时遇到堆栈溢出错误。

我正在尝试创建通用的正确算法来做到这一点。上面的算法正确吗?

0 投票
1 回答
395 浏览

qt - QTableView Horizo​​ntalHeaderItem 无效的 QModelIndex

我有一个QTableViewQSortFilterProxyModel一个QStandardItemModel作为源模型的。我真的很绝望,因为我QModelIndex对以下代码无效。无效意味着索引的列和行是-1,当我想获取 indexWidget 时,我得到 null 作为小部件。 我真的不知道 QModelIndex 中的行和列会发生什么。

我实际上想从 headerView 访问单个小部件。

0 投票
1 回答
203 浏览

python - QtreeView 和 TreeModel 如何同步

我正在使用 pyqt5 和 python 3.6。我对 QModel/TreeView 中的索引函数感到困惑,并要求在这里清除我的大脑结。有些线程更让我困惑,因为它们非常特别。我的问题或多或少是一个基本问题。

我有一个带有数据的模型(基于Uludag's great tutorials)并将其设置到我的树中:

现在我必须根据所选项目在程序中准备进一步的操作。我可以通过

到目前为止,一切都很好。但是索引是从 treeView 生成的(模型不起作用)。如何将视图中的选择连接到模型,以便我拥有正确的模型索引并可以更改模型中的数据?当然,如何将它们写回以使它们同步?换句话说,我需要哪个索引来说明它们来自什么、来自哪里以及来自哪里?