首页 > 解决方案 > QAbstractItemModel::columnCount - 每行的可变列数

问题描述

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

在此处输入图像描述

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

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

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

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

QAbstractItemModel::columnCount

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

标签: c++c++17qabstractitemmodelqt5.11

解决方案


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

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

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


推荐阅读