问题标签 [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 回答
678 浏览

c++ - 如何将 QTableView 滚动到被移除元素之后/被移除元素之前的位置?

我有一个简单的表,我在其中实现了该remove_row方法:

this->docTablea在哪里QTableView,我的模型是 a QSqlRelationalTableModel

我想做的是滚动QTableView到选定和删除元素之后/之前的位置。我怎样才能做到这一点?

0 投票
2 回答
460 浏览

qt - 当 QCompleter 突出显示时传递 QModelIndex 而不是 QString

有一个填充有 QStandardItemModel 的 QCompleter(设置为 QLineEdit)。该模型还填充了 QTableView,我需要获取 QModelIndex 并在 QTableView 中选择它,但它失败了,它传递的是文本而不是 QModelIndex:

仅通过第一个索引:

我阅读了文档,但无法理解我做错了什么。 http://doc.qt.io/qt-5/qcompleter.html#highlighted-1

0 投票
1 回答
2831 浏览

c++ - QML TreeView 的 C++ 模型

由于缺少任何其他 Qt 演示,我正在使用 Qt 小部件的SimpleTreeModel演示为我的 QML TreeView 实现 C++ 模型。我已经定义了角色,因此 QML 可以使用它,但我无法将它们与实际模型数据连接起来。

我还发现有趣的是小部件(C++)演示工作正常,但TreeModel似乎没有将数据存储为其成员变量......让我摸不着头脑。我想通了,每个 TreeItem 都存储它的所有子项,而 TreeModel 只有一个rootItem,它又将所有数据存储为其子项。

TreeItem 类

树模型类

该模型从default.txt

我的问题是在这个函数中,如何将角色与存储的数据连接起来rootItem. 请注意titleStringsummaryString可能提出功能(如果需要),但我不知道在其中写入什么来访问数据!

default.txt具有以下数据,但 Qt Creator 演示本身也提供相同的数据。

我的输出显示的行数与小部件演示中的行数相同,只是没有文本。似乎它只是没有正确连接到角色或角色没有连接到一天。我附上了我的输出的屏幕截图。

在此处输入图像描述

0 投票
0 回答
212 浏览

qtreeview - 如何知道一个项目是否是叶级项目

请参阅下面的附图。我创建了一个树视图,并将 doubleClicked 信号连接到一个插槽,该插槽打印行号、列号、hasChildren 和 childCount

当我点击“Property 0”时,我得到了第一个打印件,当我点击“222.1”时,我得到了第二个打印件,如图所示。

第一次打印是正确的,因为属性 0 有 4 个孩子

我期待第二次打印也是一样的。为什么它给了我一个childCount为0?

我想知道,当我单击第二列中的任何项目时,是否是叶级项目。 请解释和帮助。

在此处输入图像描述

0 投票
1 回答
951 浏览

qt - 对 QTableWidget 执行撤消和重做操作

我正在使用QTableWidget显示表格来绘制图表。用户可以执行以下操作:输入、复制、剪切和粘贴、添加行、添加列、插入、删除等。所有这些操作都应该堆叠起来,以便用户可以撤消或重做所有操作。

我查看了QUndoStack,但在上下文中QTableWidget我不确定我必须将哪些数据或对象推送到堆栈中。

0 投票
1 回答
254 浏览

qt - QTreeView 上的 setModel 使以前的模型索引无效?

我有一个 QTreeView,我附加了一个自定义模型。

在我的代码中,我这样做:

我可以相信在第二次setModel()调用后,模型索引将与第一次调用后保持不变setModel()吗?

我在某处读到它们不能被依赖并且可以改变。

a) 请确认此理解是否正确。

请求本论坛的专家确认并添加与模型索引何时失效相关的任何其他重要信息。

b)假设,我已将树视图附加到模型。

然后,我将它附加到代理模型:

modelPtr即使将视图设置为代理模型后,由 表示的模型中的项目的模型索引是否保持不变?

我认为它会保持不变,因为视图已更改为代理模型,但实际模型没有改变。

请专家确认。

0 投票
1 回答
164 浏览

qt - QModelIndexList 的析构函数太慢

这个简单片段的执行:

takes more than 30 seconds when the number of selected rows is about one million. QModelIndex 列表的构建几乎是立即的,但销毁需要永远。时间花在这个函数上:

有人有解决方案吗?有什么方法可以在不创建的情况下获取所选行的索引QModelIndexList,或者我可以以某种方式加速销毁?

0 投票
1 回答
430 浏览

c++ - 如何隐藏 QFileSytemModel 中的特定目录

我有一个QFileSystemModel用作QTreeView. 现在这项工作很好,我有一些目录的名称。我想隐藏在其中QTreeview

我想隐藏"samplefolder""/Volumes"目录中。我使用两个字符串"samplefolder" 并一一检查我的过滤器"/Volumes/samplefolder"setNameFilters()但这对我不起作用。

所以请告诉我我怎么能隐藏这个,因为我不想在我的QTreeView.

0 投票
1 回答
518 浏览

python - 将激活后的 QML TableView 行映射回 QModelIndex

我有一个 QML TableView,我在其中显示来自实现的模型的一些数据QAbstractItemModel。但是我没有直接使用它,而是将它包装在 a 中以QSortFilterProxyModel用于排序和过滤功能。

现在,如果我有一个经过严格过滤的视图并激活一行,我想对激活的模型项做一些事情。但是onActivated()处理程序只给了我点击的行号,但我认为我需要QModelIndex查询项目的底层模型。我也无法实现类似model.get(row)的东西,因为模型现在已经将行映射到索引。

0 投票
1 回答
1999 浏览

qt - 如何设置组合框的标题颜色?

我想做一个组合框来选择一些与颜色相关的内容。我希望内容的背景显示颜色。我已经做到了:

组合框显示了我想要的文本,以及我想要的背景颜色(不像 ColorEditorFactory 示例那样精致,它只在文本旁边显示一个小矩形,但这就是我想要的方式)。

我需要的:

选择行/颜色后,我希望组合框显示颜色。现在,组合框在关闭时显示文本但不显示颜色。

在此处输入图像描述

如何更改组合框标题的颜色?(我称它为标题,但它可能有不同的名称,不确定 - 显示在表格上方的部分用于选择以及组合框何时关闭)

编辑:我试图在插槽中设置样式表currentIndexChanged

结果:它改变了该颜色的整个组合框,忘记了初始颜色。

结果:它在未选中时很好地改变了颜色 - 但突出显示和标题是灰色的并且难以阅读,我希望我也可以改变它。当我悬停时,整个组合颜色会变为我设置的最后一个颜色。

在此处输入图像描述

答案可能在样式表中——如果我能弄清楚哪些属性适用于标题。