如何获取 QTreeView 的大小/深度/分支?

Posted

技术标签:

【中文标题】如何获取 QTreeView 的大小/深度/分支?【英文标题】:How can I get the size/depth/branches of a QTreeView? 【发布时间】:2013-10-03 11:21:34 【问题描述】:

我找不到任何方法来获取 QTreeView 的大小、深度和分支数。 我不是指其图形表示的大小,而是存储在树中的数据的大小。

【问题讨论】:

【参考方案1】:

您应该使用data model,而不是视图。

要获取根分支的数量,您应该使用 rowColumn( QModelIndex() ) 方法。

要获得任何索引(项目)的深度,您应该选择父索引,直到它保持有效。伪代码:

QModelIndex index = /*your item*/;
int depth = 0;
while ( index.parent().isValid() )

  index = index.parent();
  depth++;

qDebug() << depth;

不清楚,您所说的项目的“大小”是什么意思?它是文本数据的长度吗?您应该明白,这取决于您对数据模型的实现。因为每个项目可能有很多roles。

【讨论】:

以上是关于如何获取 QTreeView 的大小/深度/分支?的主要内容,如果未能解决你的问题,请参考以下文章

如何调整 QTreeView 和 QStandardItemModel 中的行大小?

QProxyStyle 将 QTreeView 标头与分支对齐

如何从 QStyle 获取 QTreeView 的标识宽度

如何从 qtreeview 中的父行中获取特定列

在 PySide 的 QTreeView 中更改时如何获取项目的先前名称

如何使Qt小部件可调整大小[重复]