QAbstractItemModel::columnCount - 每行的可变列数

问题描述

我们正在实现一个 qabstractitemmodel 结构,如下图所示,并希望如此;

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

enter image description here

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

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

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

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

QAbstractItemModel::columnCount

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

解决方法

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

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

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