问题标签 [qstandarditem]

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 回答
366 浏览

python - QStandardItem missing __hash__ method

I found when converting some Python2/Qt4 code to Python3/Qt5, that apparently QStandardItem can no longer be used as a dict key in as it doesn't have __hash__ implemented, and therefore is not considered immutable anymore.

Those two snippets show the issue:

PyQt4:

PyQt5:

Why was the change done? Should I not use QStandardItem as a dict key?

The obvious workaround would be to subclass QStandardItem and reimplement a trivial version of __hash__ (which I've done). But is there anything I'm missing?

0 投票
1 回答
299 浏览

qt - 如何混合 QStandardItemModel

我使用 QStandardItemModel 制作了一个 TreeView,如下图 A

在此处输入图像描述

我也有一个 QStandardItemModel 如下图 B

现在,我想将两个模型混合在一起,为 TreeView 创建一个新模型 在此处输入图像描述

新的 TreeView 如下图 C所示:

在此处输入图像描述

例子:

fileTree 是 TreeView 图像 A 的模型;

zipTree 是 TreeView 图像 B 的模型;

如何混合它们为 TreeView 图像 C 制作 fullTree。

更新:

3个数据都有一个模型,只是数据不同。我想合并照片 C 表格 A + B 的数据。文件 a.zip -> 文件夹 a。并将a(图像B)的文件列表添加到新文件夹(a)

P/S:不要使用 QfileSystemModel

0 投票
1 回答
42 浏览

c++ - QStandardItem 重新定义错误

我正在尝试QStandardItemModel在 Qt 中使用模型。我已经通过以下两种方式做到了。在第二种方法中,我只是扩展了循环,我得到redefinition of 'item'了错误,而第一种方法工作正常。

  • 方法一

    /li>
  • 方法二

    /li>
0 投票
1 回答
1633 浏览

python - 在模型/视图中更改 QStandardItem 的文本颜色?

在模型/视图配置中使用时如何更改 QStandardItem 的文本颜色。似乎它总是会显示为黑色测试。

下面是一个将“Hello World”显示为黑色文本的可执行示例代码。我正在尝试将其更改为绿色文本。

我也试过用_component.setForeground(QColor(0,255,0))

0 投票
2 回答
2222 浏览

c++ - QTreeView,每个条目有 2 列

我想创建一个有 2 列的 QTreeview。到目前为止,这没有问题。我用以下代码做到了这一点:

现在我想填充这个 TreeView。为此,我创建了一个 0 行 1 列的 QStandardItem。

之后,我将数据添加到此根项目。

最后,我将模型添加到 QTreeView

问题是,该值未显示在 QTreeView 的第二列中。我敢肯定,原因是模型的第二列与根项的第二列不同。

但是如何解决这个问题呢?

0 投票
1 回答
497 浏览

c++ - QStandardItemModel 中项目的重新分配

QStandardItemModel分配在堆栈上的 被销毁时,模型中的指针所指向的对象会发生什么情况(例如,下面示例中的item/指针):item2

在这种情况下,如果我理解正确,模型中的行由 N 个值组成,该行中的每个值表示为QStandardItem。这意味着上面的“列表”对象是一行,有两个值(列)。

这比使用model.setData(),model.setRowCount()和手动跟踪坐标好还是坏?

如果需要完整的上下文,它就在这里。想法是手动循环QSqlQuery结果并以块的形式获取行。调用相关方法loadChunk

如果模型是堆栈分配的,我是否需要以某种方式管理加载到模型的项目的释放addRow()

TLDR;如何确保模型在分配堆栈时不会泄漏内存,但包含大量指向堆上对象的指针?

0 投票
1 回答
501 浏览

python - 使用 setData 方法时如何使数据持久化

下面的代码创建了一个QComboBox. 组合的QStandardItems 是使用 data_objusingsetData方法设置的。更改combo' 的当前索引会触发run迭代combo' 的方法,并将其打印data_obj到 Python 字典中。如何让data_obj执着?

在此处输入图像描述

0 投票
1 回答
563 浏览

c++ - 有没有办法计算 QStandardItem 的高度?

我创建了一个从 QListView 扩展的可扩展 ListView,当我只想显示 Header 数据(未扩展的项目)时一切正常,因为我给了它一个硬编码的高度,即 64,扩展时会出现详细信息物品。但问题是我不知道细节的确切高度,因为细节可以一行或更多,我想根据项目内容适合项目高度。

这里是在项目展开或折叠时处理点击监听器的代码:

现在的问题是:如何计算项目展开时的高度?

结果:

在此处输入图像描述

编辑:

它是 sizeHint() 中的代码

可惜不行……,我觉得Qt可以看看Android ListView及其回收功能来解决ListView的问题,这样一来,我觉得是非常非常痛苦的。

0 投票
3 回答
2048 浏览

c++ - 按项目数据从 QStandardItemModel 中查找/删除一行

我有QStandardItemModel一个单列(代表一个列表)。列表中的每个项目都有一个唯一的整数 ID,存储为QStandardItem的数据(QStandardItem::setData我猜Qt::UserRole+1默认情况下通过它存储)。

给定其中一个 ID,我想从模型中查找并删除相应的行。现在我正在这样做:

它工作正常,但该功能的每一行都让我畏缩。有没有更清洁的方法来做到这一点?

0 投票
1 回答
384 浏览

c++ - QStandardItemModel & 绑定到自定义对象

我尝试使用 Qt 示例的城市标准项并将其调整为我的示例。我有一个奇怪的结果:

这是我的用户类:

我已经声明了一个usermodel.h:

下面是构造函数和 roleNames 函数的实现:

我的表格视图仅显示使用该功能添加的最后一个角色: item->setData(user.getFirstname(), FirstnameRole);

如果它最后添加的年龄,它的年龄显示...任何线索?