问题标签 [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 - 如何显示在列视图中选择的项目的描述?
我不熟悉 PyQt 和 QColumnView,我该如何做才能获得用户选择的任何内容的“描述”,而不是我可以单击扩展列视图的另一行项目?
这就是我希望它出现的方式
python - 使用整数创建项目,QStandardItem 不提供 QSpinBox
我在我的程序中将 PySide2 和 QTableView 与 QStandardItemModel(称为资源模型的对象)一起使用。当我使用以下代码创建、填充项目并将其放入表中时:
当我双击包含该值的单元格时,它会提供一个用于编辑数据的框,我可以将字母放入其中。我的预期行为是有一个 QSpinBox 以便只能放数字。
这段代码:
正如预期的那样,在双击单元格后呈现一个 QDoubleSpinBox。PyQt5 中的这两个代码都按预期提供了旋转框。
当输入的值只是一个整数时,为什么 QStandardItem 不提供 QSpinBox?是否可以在不编写自定义委托的情况下解决此问题?
感谢您的所有回答。
python - QStandardItem 不在第一行添加子项
显然,在同一行但在新列上设置一个项目,总是会添加一个新行。
我真正想要的是将我的数据放在一行中,而不是添加新行来显示列。
重要提示:在创建项目的上下文中,我无权访问模型。
python - 如何将列表分配给 Qstandarditem Python
我有一个从 JSON 构建的模型。我已经解析了 JSON 并使用 JSON Dict 中的每个对象作为字符串构建了模型。一切都很好,但是我需要一个 JSON 对象作为列表。当我像以前使用字符串一样传入列表时,它会破坏我的模型。(在我看来几乎所有条目都消失了)我有没有办法将列表分配给 Qstandarditem?
python - QStandardItem 子类中克隆的实现
我使用 QStandardItemModel 和 QTreeView 来显示自定义项目。这些项目有三种不同的类型 FILTER_TYPE、MODIFIER_TYPE 和 GROUP_TYPE。
我希望能够使用视图中的拖放(InternalMove)对模型中的项目进行重新排序。如果我理解正确,我必须在我的模型上使用 setItemPrototype(MyItem()) 以便它在移动项目时使用自定义 MyItem 而不是一般的 QStandardItem。
我的理解是创建自定义 MyItem 的新实例,然后将旧项目中的所有数据和标志复制到新项目。但是,模型似乎只初始化了一个新的 MyItem 而从不复制数据。
因此:如何在 MyItem 子类中重新实现 QStandardItem.clone() 以将所有数据和标志复制到新项目中?我是否必须手动检查所有自定义数据角色并将其值分配给新项目?
Item 类如下所示:
模型实现如下所示:
qt - 设置 QComboBox 的最小行高
我试图在QComboBox
下拉菜单中设置行的最小高度而不改变它们的宽度或QComboBox
本身的大小。
默认情况下,行项目的宽度和高度由其数据计算。使下拉列表调整为我正在调用的数据的宽度
在组合框的::showPopup()
.
但是,由于我在行中有不同的字体大小,我想在每行上强制执行最小高度。
我尝试在第一列中添加到行中的setSizeHint
每个上使用,但没有成功。QStandardItem
我试过:
(https://stackoverflow.com/a/10749345/1981832)
但这会导致下拉菜单无法调整到数据的宽度。
所以,我试图让宽度“未设置”。然而,两者
和
不工作。有谁知道如何在QComboBox
不弄乱自动宽度计算的情况下在行上强制执行最小高度?
python - 如何腌制 QStandardItem 对象
我正在尝试腌制 PyQt5 的 QStandardItem 对象,
但它报告这个错误TypeError: can't pickle QStandardItem objects
然后我将代码更改为:
它可以被腌制,但我加载了挑选的对象,它报告:
RuntimeError:从未调用过 myStandardItem 类型的超类init ()
上面的代码有什么问题?如何与孩子一起腌制 QstandardItem?并重新加载成功?
谢谢。
python - QTreeView StandardItem.insertRow(0, new_item) 插入自己而不是 new_item?
我想在子项的第 0 行向我的树视图中插入一个新项。代码看起来很简单,但我想我遇到了一个错误?我简化了问题以避免大量不需要的代码。有什么我做错了吗?
需要明确的是,如果我在 StandardItemModel 本身上调用 insertRow() ......它确实有效。然而我需要它来处理模型的一个子项目。
QT 版本:6.0.0 PySide 版本:6.0.0 操作系统:Ubuntu 20.10 (KDE)
现在我希望得到如下结果:
然而我得到的结果是:
python - Python - QStandardItem - 树视图
我将 qt 与 Python 一起使用。
我想实现一个多列的树视图。一列已经在工作。
如果我只向 treeView 添加一个文本项(变量 txt),它可以工作)
我想为 treeView 的层次结构添加一些数据库日期,例如:
有什么解决办法吗?如果我将 txt 变量从字符串更改为列表,则会出现错误。这是修改后的代码:
c++ - 将 QStandartItem 设置为 Expandable 而没有子项
我正在尝试在可以位于不同计算机上的两个不同程序之间发送文件夹结构。在我的服务器上我有一个QFileSystemModel
,在我的客户端上我有QTreeView
一个QStandardItemModel
作为模型的。而且我有一个可以在程序之间发送QString
和发送的预构建信号/插槽系统。QStringList
客户:
每次单击客户端上的展开按钮时,我都想从服务器发送子目录m_treeView
。问题是条目只有在有子项时才能扩展。
我这样做的方法是添加一个虚拟孩子并在用户单击展开按钮时将其删除。
添加假人:
是否有一种解决方法可以在不添加虚拟孩子的情况下添加展开按钮?
亲切的问候