QTreeView 使用示例 - 如何将子节点添加到现有项目?

Posted

技术标签:

【中文标题】QTreeView 使用示例 - 如何将子节点添加到现有项目?【英文标题】:QTreeView usage example - how to add a subnode to an existing item? 【发布时间】:2016-02-22 14:12:57 【问题描述】:

我对 Qt 还很陌生,因此尝试了解事情是如何工作的。特别是对于 QTreeView 这似乎相当困难:来自 Qt 的文档和示例(至少对我而言)或多或少是神秘的。我猜只有当人们已经知道它是如何工作的时候才会理解这个文档。

那么:有人可以提供一个示例或链接到一个适合初学者并演示 QTreeView 用法的示例吗?演示如何向其添加节点和一些子节点的方法?

谢谢!

【问题讨论】:

【参考方案1】:

也许this mini example 可以帮助你。

但要理解它,您必须掌握模型-视图的概念。这个想法是您添加到视图中,您添加到模型中并且视图会自行更新。

【讨论】:

【参考方案2】:

您可以从QStandardItemModelQTreeView 的组合开始。

通过QStandadItemModel::setRowCount()QStandardItemModel::columnCount() 设置模型的正确行数和列数。

然后您可以使用QStandardItemModel::setItem() 将 QStandardItem 实例插入模型的特定单元格中。

QStandardItem 具有与QStandardItemModel 类似的接口,用于创建子行和列以及插入子项:QStandardItem::setRowCount()QStandardItem::setColumnCount()QStandartItem::setChild()

如果您需要,我可以准备一个示例。

【讨论】:

以上是关于QTreeView 使用示例 - 如何将子节点添加到现有项目?的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET 如何将子节点添加到树视图中的特定节点

将复选框列添加到树左侧的 QTreeView 的方法?

如何将子节点附加到特定位置

Scenekit - 将子节点(平面节点)添加到相机前面的父节点(球体节点)

QTreeView

如何在 QAbstractItemModel 中为 QTreeView 创建人工节点