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

python - 在拖放中保留 QStandardItem 子类

我有:

当我将 itemB 移动到 itemA 并检查其类时,ItemB 不再是 SubclassQStandardItemB 而是 QStandardItem。

拖放时如何保留项目的原始类?

0 投票
1 回答
1343 浏览

python - QT、Python、QTreeView、自定义小部件、setData - 拖放后失去参考

这个问题与本主题中的问题类似Preserve QStandardItem subclasses in drag and drop但存在我找不到好的解决方案的问题。该主题部分帮助但在更复杂的任务上失败。

当我在 QTreeView 中创建一个项目时,我将该项目放在我的数组中,但是当我使用拖放操作时,该项目被删除并且我不再可以访问它。我知道这是因为拖放复制项目而不是移动它,所以我应该使用 setData。我不能将 setData 设置为对象,因为即使这样,对象也会被复制并且我失去了对它的引用。

这是一个例子

如果我不移动小部件,上面的代码就可以工作。第二次我拖放我失去参考我失去了我所有项目的更新,我得到了崩溃。

我能想到的解决这个问题的方法是在每一行/子项上递归遍历整个树视图,并在名称匹配更新项上循环......问题是我将每 0.5 秒刷新一次树视图,并且有 500 多行和 5 -15 项。意思...我认为这不会非常快速/高效...如果我想每 0.5 秒循环超过 5 000 个项目...

有人可以建议我如何解决这个问题吗?也许我可以编辑 dropEvent 所以它不会复制/粘贴项目而是移动项目....这样我就不会在数组中丢失我的对象

0 投票
1 回答
1940 浏览

pyside - QstandardItem 第二列的 setData

如何为 QStandardItem 的第二列设置数据,然后将其添加到 QTreeview?

以我为例,我只想放置一个复选框或文本。

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
1024 浏览

pyside - QStandardItem 复选框更改反映在 Pyside 中的对象上

如何将 UI 中的复选框与它们所代表的属性同步?因此,当我在 UI 中更改复选框状态时,它会正确设置类对象上的属性值以匹配复选框状态吗?

例如,如果我单击 FumeFX_001 的 Continue Sim 复选框,它也应该更改属性以匹配。

当用户单击 ui 中的复选框时,打印按钮可帮助测试值是否正在更新。

在此处输入图像描述

0 投票
0 回答
226 浏览

c++ - 将 QStandardItem 作为多个父项的子项

是否可以同时显示/让一个 QStandardItem 成为多个父母的孩子?

我有一种情况,我有一个主要的对象列表,然后是这些对象的几个子列表。

例如:

我以前没有使用过 Qt 的模型/视图系统,但我想看看它是否适用于这个项目。

我目前有一组多个列表。当我想向这些列表中添加一个项目时,我将一个指针传递给 ListItem 并将其存储在一个向量中。因此,通过更新其中一个列表中的项目,所有列表都反映了更改。

这可能不是模型/视图实用的时候,或者我必须进行一些重大的重组才能使其工作,但正如我现在所拥有的那样,如果我能够拥有多个父母反映同一个孩子。

到目前为止,我能想出的唯一解决方案是将 QStandardItem 单独作为每个孩子,但向它们传递一个指针,以便我可以连接一个信号以指示何时更新 ListItem,然后相应地更新 QStandardItem 中的信息.

如果有更好的方法来解决这个问题,我会全力以赴。

0 投票
1 回答
4977 浏览

python - PyQt5:为 QStandardItem 设置数据

如果我QStandardItem像这样构造:

当将此项目添加到QStandardItemModel模型并在 a 中查看时,QTreeView我会看到一个显示 的单元格Item Name。但是,当我构建一个像:

我得到一个空单元格,但我仍然可以通过调用调用数据:

我会得到号码123。如何让数字实际显示在单元格中?

0 投票
2 回答
265 浏览

qt - 两个 QStandardItem 对象可以处理来自同一对象的不同属性吗?

我是 Qt 模型/视图编程的新手,并已阅读 Qt 文档中的可编辑树模型示例。此示例中的好功能是单个对象 ( ) 封装了两条信息,这些信息随后显示在包含两列 ( and )TreeItem的单行中,这要归功于and的覆盖。namedescriptionQModelIndex QAbstractItemModel::indexQVariant QAbstractItemModel::data

现在,我还有一个自定义类(例如Foo),其中包含两条信息(Foo::m_nameFoo::m_description),我想在包含两列的单行中显示它们,但QAbstractItemModel我不想子类化QStandardItemModel,因为它有很多功能。但是,似乎我必须QStandardItem为每个对象创建两个对象Foo,一个用于处理m_name,另一个用于处理m_description。如何将单个Foo对象保留在内存中并让这两个QStandardItem对象引用它?

在我的问题中有一个隐含的假设,即必须QStandardItem为每个(行,列)对创建一个对象。如果这是错误的,请告诉我。

0 投票
1 回答
7445 浏览

python - PyQt:如何将 QStandardItemModel 中的 QStandardItem 连接到函数

我正在 PyQt 中创建一个应用程序,其中有一个复选框列表,我使用 QStandardItemModel 和 QStandardItem 创建了它,它运行良好。我想将列表中的第一项“全选”复选框连接到一个函数。此功能应该能够检查列表的所有其他项目。我正在尝试通过以下代码执行此操作:

我从 SQL 查询的输出中向列表中添加了更多项目,并且无论我单击哪个复选框,我都可以看到打印了“Hello”。这是我的全部代码:

如何确保仅在“全选”状态更改时才调用该函数?

0 投票
1 回答
91 浏览

qt - QStandardItemModel::removeRows() 是递归的吗?

当使用树结构调用removeRows()时,这是否会递归地QStandardItemModel释放所有孩子的内存?QStandartItem

0 投票
2 回答
1536 浏览

qt - 如何从 QTreeView 中删除根元素?

我处理插槽中树元素的删除。所有元素都被删除,除了最后一个(根)。

为什么当我尝试删除最后一个元素时,curParent0x0

规范:我使用 invisibleRootItem() 的根元素构建树。

告诉我如何删除最后一个(根)元素?