问题描述
我们正在实现一个 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 肯定可以解决此类问题。我做错了什么或没有在想什么?感谢您对此事的任何意见。
解决方法
我不知道这是否对您有帮助,但我实现了一个树模型来弄清楚如何编写模型。它在我的 github 上:https://github.com/jplflyer/qt-TreeViewDemo
要解决您的具体问题:您传递了一个 QModelIndex
对象,您必须找出所指向的数据并使用它来确定子项的数量。
您应该已经有了接受 QModelIndex
并返回列数据的代码,因此您可以利用相同的代码来知道要返回什么。