问题标签 [qtreeview]
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.
qt - QTreeView:一次将所有选定的单元格设置为用户输入的值
我有一个具有 ExtendedSelection 属性的 QTreeView(用户可以选择多个不连续的单元格范围)。
我希望我的应用程序允许他们选择这些多个单元格,然后输入一个值并让所有单元格采用该值。
我的问题是我不知道如何将所有单元格传递给我的模型。现在传递给 setData 方法的索引只是活动单元格,而不是选定单元格的全部范围。
过去,每次更改时,我都会让视图将当前选定的范围存储在模型中,然后使用它来控制要修改的单元格。这似乎有点 hacky,我想知道是否有人有更好、更优雅的解决方案。
顺便说一句,我正在使用 PyQt,尽管我怀疑这本身适用于 QT。
谢谢!
qt - PyQt QTreeView:尝试连接到 selectionChanged 信号
我正在尝试使用 PyQt 连接到 QTreeView 的 selectionChanged 信号。我过去曾这样做过(对于 QTableView)并且成功了。但现在我无法让类似的代码工作。
在以下代码示例中,我成功连接到展开和折叠的信号,但没有连接到 selectionChanged 或激活的信号。有人可以告诉我我做错了什么吗?谢谢。
python - 在 PyQt 中支持拖放的 QTreeView
在 PyQt 4 中,我想创建一个 QTreeView,可以通过拖放操作重新组织其结构。
我已经为 QTreeView 实现了自己的模型(QAbstractItemModel),因此我的 QTreeView 可以正确显示数据。现在我想添加对树节点的拖放支持,以便能够将树内的节点从一个父节点移动到另一个父节点,拖放复制等等,但我找不到任何完整的教程来实现这一点。我找到了一些关于 QTreeWidget 的教程和提示,但没有找到带有自定义模型的 QTreeView。有人可以指点我在哪里看吗?
谢谢你。
proxy - QTreeView:过滤内容 - 寻找最佳实践
我有一个 QTreeView 我希望在其中过滤内容。我只希望在顶级子级(根索引下方的那些)上过滤这些内容。目前,我通过在我的 QTreeView 子类中创建一个简单的过滤方法并选择性地隐藏那些不匹配的行来实现这一点。
虽然上述方法似乎工作正常,但我想知道是否应该使用 QSortFilterProxyModel 重新实现它。如果是这样,有什么好处?
如果我改用 QSortFilterProxyModel,我有几个(希望很小)问题:
1)由于我只过滤顶级孩子,我将不得不重新实现实际进行排序的任何方法,这样它就可以让所有的孙子一个人呆着,对吧?
2) 我的数据模型中有许多自定义方法,它们负责独特的键盘导航等。我是否在代理模型中重新实现这些并让它们指向我的数据模型的方法?如果是这样,我如何引用模型?我似乎找不到任何可以与 QTreeView 的 model() 方法相媲美的东西。
谢谢!
qt - qt:QTreeView - 限制拖放只发生在特定的祖父母(祖先)中
我有一个 QTreeView,我在其中实现了拖放以允许重新排序项目。
给定以下树的示例:
任何标记为可拖动的东西都可以被拖动。任何标记为 parentable 的东西都可能有一个可拖动的项作为子项。任何标记为固定的东西都是固定的。
我的问题是,我将如何限制物品的丢弃以留在特定的父母中?例如,我可以拖动 'bloodOrange' 并使其成为 'apple' 或 'orange' 的孩子(或者甚至只是更改其在 'Fruit' 中的序号位置),但我不应该让它成为胡萝卜的孩子或生菜等
我已经成功地为除了限制放置操作以保持在特定父级中的部分之外的所有内容正确编码了标志。我只是不知道如何捕获当前拖动的 QModelIndex (从中我可以确定父母、祖父母等)
谢谢!
这是我的 flags 方法的代码,以防它有帮助: 注意:我将顶级子级称为节点(即“食物”),下一个级别称为组(即“水果”),最后两个级别(即lettuce 和 icebergLettuce) 都是参数。
python - QMimeData 中的 Python 对象
我正在根据我的自定义模型实现拖放 QTreeView。一切正常,我的树显示数据,拖放已启用,现在最后一步摆在我面前 - 拖放和传输拖动的数据。为此,我需要在我的模型中实现 mimeTypes、mimeData 和 dropMimeData 方法。现在我的问题是:是否有任何简单的标准方法可以通过 QMimeData 传递任意 Python 对象?我只是在 QTreeView 中进行内部移动,它显示了我的 Python 类 Person 的层次结构。我想重新排序。在应用程序之外没有拖放,甚至不受控制。我只找到了一个教程:链接文本。但这是唯一的方法吗?如果不将 Python 对象编码为 ByteArray,就无法做到这一点。对于我唯一的一类人,我需要非常简单的解决方案。谢谢你。
qt - pyqt:QTreeView - 找到了一个拖放示例,但需要帮助破译一小部分
我正在寻找破译以下代码的最微小的帮助(这是一个来自 - http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg17197.html的示例)。我认为可以根据该帖子的内容在此处重新发布。请不要被我包含的代码的长度所推迟,我只需要澄清其中的一小部分:
下面列出了我想知道的代码片段(为了完整起见,我还在之后发布了整个示例)。我的问题有两个:
1) removeRows 什么时候被调用?
2)为什么作者实际上复制了正在移动的节点(使用深拷贝)?我会假设可以使用 appendChild 和 removeChild (他的数据存储中节点的两种方法)简单地重新设置有问题的节点。
为了完整起见,我还包括以下所有代码:
qt - qt: pyqt: QTreeView 内部拖放几乎可以正常工作...被拖动的项目消失了
我几乎在 QTreeView 中有一个完全有效的拖放重新排序。一切似乎都很好,除了丢弃的对象从未出现(尽管我可以引用它许多不同的方式,向我证明它确实存在于它应该存在的地方)。如果有人有时间并且可以运行以下代码并让我知道我做错了什么,我将非常感激。一个多星期以来,我一直在反对这个过程:
您应该能够只复制并运行以下代码(我有一堆打印语句,似乎表明一切正常,但显然有些问题):
c++ - Qt - QPushButtons 代替 QTreeView 项目
是否可以为 QTreeView 中的每个项目添加 QPushButtons?例如,当您单击 TreeItem(即按钮)时,它的子项也会显示为按钮吗?我只有一个标准的 QTreeView。
c++ - QAbstractItemModel 和 QTreeView
我需要在 QtreeView 中显示自己的数据模型的工作示例(c++)。