问题标签 [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.

0 投票
1 回答
1698 浏览

qt - 需要有关 QTreeView 的 QAbstractItemModel 中节点的示例吗?

问题:我正在寻找有关创建模型(基于QAbstractItemModel)的示例QTreeView,但找不到健全的代码。Qt的例子都是基于的QStandardModel,用处不大,复杂,网上的例子都是基于python的?!代码...其他信息无法给我正确的方向。所以,这就是我所拥有的:

  • std::map

    typedef std::map< CompanyData, std::vector< ContractorData >, LessData< CompanyData >> 公司;

这是数据示例(CompanyName + ContractorsNames):

where *表示 - 可扩展项(父项)

以及我需要它QTreeView用上面的这些数据创建的所有东西!

任何人都可以帮忙吗?

非常感谢!

0 投票
1 回答
2778 浏览

xml - Qt QTreeView 可编辑 DOM 模型

我有一个 QTreeView,我为其设置了一个子类 DomModel:QAbstractItemModel。每个项目都是一个 DomItem,主要处理 QDomNode。我将 QDomDocument 设置为此模型。我想我是从一个 Qt 示例中派生出这个系统的。

它有 3 列:0 表示节点名称,1 表示属性,2 表示值。

无论如何,我想让这个 XML DOM 树可编辑。我已经修改了一些标志,例如 Qt::ItemIsEditable 和模型类中的其他一些东西,现在我可以通过双击 QTreeView 来编辑模型。

对于第 2 列,这很容易,因为 QDomItem 有这个 setNodeValue 函数,但是我发现 item->node().NodeName() 和 item->node().attributes() 没有“设置”函数,我想,修改第 0 列和第 1 列。

所以现在当我修改第 2 列时它可以工作,但是第 0 列和第 1 列在按下回车后恢复到它们以前的值。

0 投票
1 回答
1141 浏览

c++ - 在 QTreeView 中找到 QModelIndex 可见行的更简单方法

有没有办法获得给定的“视觉行” QModelIndex

假设我们有一棵树,其中一些节点展开,一些节点没有展开。例如,取一个部分展开的树并单击最后一项:

我想知道我点击的那个项目在第 5 行,以编程方式。QModelIndex的行和列没有帮助,因为这里有层次结构。

0 投票
2 回答
10388 浏览

qt4 - QTreeView 多列,可能吗?

我正在使用QStandardItemModela QTreeView,我希望左窗格显示节点,右窗格显示节点的值,在本例中为第 0 列和第 1 列。

节点的构建非常成功,但是当我尝试使用 将值放入该模型时 QStandardItem::insertRow(1, XX),该项目根本没有出现,我错过了什么吗?

@更新:

由于我递归地创建节点,我使用:

我不能只使用model.setItem()to append childValue,因为它去了错误的 row ,并且 QTreeView 在添加新节点时默认不展开。

0 投票
2 回答
24508 浏览

python - QTreeView 如何设置列宽?

请耐心等待,我还是 QT 的新手,并且无法理解它是如何做事的。

我创建并填充了包含两列的 QTreeView:

一切都很好,除了列非常窄。我希望 setColumnWidth(0, 800) 会加宽第一列,但它似乎没有任何效果。设置列宽的正确方法是什么?

0 投票
1 回答
2859 浏览

python - PyQt4:在 QTreeView 中拖放

我用 PyQt4 制作了一个 UI。它有一个treeView,我想处理它。树视图由模型库组成。我在 .py 文件中创建一个数据并将其导入。所以,我可以在我的 treeView 中看到数据树。但是我不能拖放它,所以不能改变顺序。我参考了一些文章,因此将其添加到我的脚本中,但它们无法正常工作。我种植了一些“印刷品”,所以我追逐了我的问题。我发现当拖动一个项目时,它会传输到 MIME 数据。但是当它被丢弃时,我找不到任何输出。脚本似乎没有调用“dropMimeData”方法。如何修复我的脚本?


这里添加的脚本是ui创建(上面的脚本是在这个脚本中导入的)

和数据是

0 投票
1 回答
2259 浏览

request - PyQT 和 QTreeView:当用户点击一个项目时需要询问孩子

我需要根据请求创建一个 QTreeView。

因此,当用户打开应用程序时,它应该请求获取树的根项。一旦用户单击该项目,它应该询问孩子,依此类推。

我找不到任何我想要的带有请求的工作示例,我什至不知道这是否可能。

0 投票
1 回答
2261 浏览

pyqt - QTreeView:展开项目时显示“正在加载”消息

使用 PyQT 和 QTreeView,当用户展开项目时,我需要显示“正在加载”消息或“旋转轮”,因为通过发出 http 请求来检索子项。

关于如何实现这一点的任何想法?

谢谢

0 投票
1 回答
1472 浏览

qtreeview - 如何在 QFileSystemModel 中添加自定义行?

我正在使用 QFileSystemModel 通过 QTreView 来表示文件结构。一切正常,但我需要在树的某个级别添加一个额外的行。例如现在是:

-根

--row1

--row2

--row3

所有这些行都从文件系统映射文件夹/文件。我需要:

-根

--row1

--row2

--row3

--自定义行

因此自定义行不代表来自文件系统的任何数据。我只需要在这里添加我自己的数据。我从互联网上阅读了很多东西,人们建议使用代理模型并重新实现 rowCount()、data() 和 flags() 函数。我试图这样做(使用从 QSortFilterProxyModel 派生的类),但我从来没有在 data() 和 flags() 函数中得到我的行。似乎它从源模型中计算出来。

使用从 QAbstractProxyModel 派生的类是不可接受的,因为我需要 QSortFilterProxyModel() 的过滤功能。

我还尝试重新实现 QFileSystemModel 的 rowCount() 以直接在模型中进行更改,但我从 QT 代码中收到“数组超出范围”错误。

我已经尝试过 insertRow() 方法,但它不起作用。我认为因为 QFileSystemModel 是只读的。

有人遇到过这个问题吗?有任何想法吗?

0 投票
1 回答
12967 浏览

qt - QTreeView 中间列填充宽度空间而不是最后一列

如何做到这一点:

中间列填充空间

我已经尝试过这种方式:

但不起作用。