问题标签 [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.
python - 在拖放中保留 QStandardItem 子类
我有:
当我将 itemB 移动到 itemA 并检查其类时,ItemB 不再是 SubclassQStandardItemB 而是 QStandardItem。
拖放时如何保留项目的原始类?
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 所以它不会复制/粘贴项目而是移动项目....这样我就不会在数组中丢失我的对象
c++ - 将 QStandardItem 作为多个父项的子项
是否可以同时显示/让一个 QStandardItem 成为多个父母的孩子?
我有一种情况,我有一个主要的对象列表,然后是这些对象的几个子列表。
例如:
我以前没有使用过 Qt 的模型/视图系统,但我想看看它是否适用于这个项目。
我目前有一组多个列表。当我想向这些列表中添加一个项目时,我将一个指针传递给 ListItem 并将其存储在一个向量中。因此,通过更新其中一个列表中的项目,所有列表都反映了更改。
这可能不是模型/视图实用的时候,或者我必须进行一些重大的重组才能使其工作,但正如我现在所拥有的那样,如果我能够拥有多个父母反映同一个孩子。
到目前为止,我能想出的唯一解决方案是将 QStandardItem 单独作为每个孩子,但向它们传递一个指针,以便我可以连接一个信号以指示何时更新 ListItem,然后相应地更新 QStandardItem 中的信息.
如果有更好的方法来解决这个问题,我会全力以赴。
python - PyQt5:为 QStandardItem 设置数据
如果我QStandardItem
像这样构造:
当将此项目添加到QStandardItemModel
模型并在 a 中查看时,QTreeView
我会看到一个显示 的单元格Item Name
。但是,当我构建一个像:
我得到一个空单元格,但我仍然可以通过调用调用数据:
我会得到号码123
。如何让数字实际显示在单元格中?
qt - 两个 QStandardItem 对象可以处理来自同一对象的不同属性吗?
我是 Qt 模型/视图编程的新手,并已阅读 Qt 文档中的可编辑树模型示例。此示例中的好功能是单个对象 ( ) 封装了两条信息,这些信息随后显示在包含两列 ( and )TreeItem
的单行中,这要归功于and的覆盖。name
description
QModelIndex QAbstractItemModel::index
QVariant QAbstractItemModel::data
现在,我还有一个自定义类(例如Foo
),其中包含两条信息(Foo::m_name
和Foo::m_description
),我想在包含两列的单行中显示它们,但QAbstractItemModel
我不想子类化QStandardItemModel
,因为它有很多功能。但是,似乎我必须QStandardItem
为每个对象创建两个对象Foo
,一个用于处理m_name
,另一个用于处理m_description
。如何将单个Foo
对象保留在内存中并让这两个QStandardItem
对象引用它?
在我的问题中有一个隐含的假设,即必须QStandardItem
为每个(行,列)对创建一个对象。如果这是错误的,请告诉我。
python - PyQt:如何将 QStandardItemModel 中的 QStandardItem 连接到函数
我正在 PyQt 中创建一个应用程序,其中有一个复选框列表,我使用 QStandardItemModel 和 QStandardItem 创建了它,它运行良好。我想将列表中的第一项“全选”复选框连接到一个函数。此功能应该能够检查列表的所有其他项目。我正在尝试通过以下代码执行此操作:
我从 SQL 查询的输出中向列表中添加了更多项目,并且无论我单击哪个复选框,我都可以看到打印了“Hello”。这是我的全部代码:
如何确保仅在“全选”状态更改时才调用该函数?
qt - QStandardItemModel::removeRows() 是递归的吗?
当使用树结构调用removeRows()
时,这是否会递归地QStandardItemModel
释放所有孩子的内存?QStandartItem
qt - 如何从 QTreeView 中删除根元素?
我处理插槽中树元素的删除。所有元素都被删除,除了最后一个(根)。
为什么当我尝试删除最后一个元素时,curParent
是0x0
?
规范:我使用 invisibleRootItem() 的根元素构建树。
告诉我如何删除最后一个(根)元素?