0

我们正在实现一个 QAbstractItemModel 结构,如下图所示,并且希望这样;

  • 节点 A 包含 3 个数据列
  • 节点 B 包含 8 个数据列
  • 节点 C 包含 5 个数据列

在此处输入图像描述

但是,在查看 QAbstractItemModel::columnCount 的签名时,不清楚如何实现上述要求。很难确定节点 A 应该有 3 列,节点 B 应该有 8 列,节点 C 应该有 5 列只给出父索引。

int QAbstractItemModel::columnCount(const QModelIndex &parent = QModelIndex()) const

返回给定父级的子级的列数。

在大多数子类中,列数与父类无关。

QAbstractItemModel::columnCount

这类问题肯定可以使用 QAbstractItemModel 解决。我做错了什么或没有在想什么?感谢您对此事的任何意见。

4

1 回答 1

0

我不知道这是否会对您有所帮助,但我实现了一个树模型来弄清楚如何编写模型。它在我的 github:https ://github.com/jplflyer/qt-TreeViewDemo

要解决您的具体问题:您传递了一个QModelIndex对象,您必须找出指向的数据并使用它来确定子项的数量。

您应该已经有了接受 aQModelIndex并返回列数据的代码,因此您可以利用相同的代码来知道要返回什么。

于 2021-03-17T20:21:30.213 回答