c++ - QAbstractItemModel::columnCount - 每行的可变列数
问题描述
我们正在实现一个 QAbstractItemModel 结构,如下图所示,并且希望这样;
- 节点 A 包含 3 个数据列
- 节点 B 包含 8 个数据列
- 节点 C 包含 5 个数据列
但是,在查看 QAbstractItemModel::columnCount 的签名时,不清楚如何实现上述要求。很难确定节点 A 应该有 3 列,节点 B 应该有 8 列,节点 C 应该有 5 列只给出父索引。
int QAbstractItemModel::columnCount(const QModelIndex &parent = QModelIndex()) const
返回给定父级的子级的列数。
在大多数子类中,列数与父类无关。
这类问题肯定可以使用 QAbstractItemModel 解决。我做错了什么或没有在想什么?感谢您对此事的任何意见。
解决方案
我不知道这是否会对您有所帮助,但我实现了一个树模型来弄清楚如何编写模型。它在我的 github:https ://github.com/jplflyer/qt-TreeViewDemo
要解决您的具体问题:您传递了一个QModelIndex
对象,您必须找出指向的数据并使用它来确定子项的数量。
您应该已经有了接受 aQModelIndex
并返回列数据的代码,因此您可以利用相同的代码来知道要返回什么。
推荐阅读
- javafx - 如何在 JavaFX8 TableView 中根据是否选择和/或数据模型中的值设置 TableRow 的背景颜色?
- c - 使用 c 进行霍夫曼编码
- java - IllegalArgumentException:Comparison 方法违反了它的一般约定
- html - 如何将整个图像放入 Bootstrap Carousel 中?
- opencv - 如何从 openCV 函数中获得最大的轮廓,以便将其存储在数组中
- arrays - 如何查找和存储二维数组中的值组?
- c++ - 哈希函数中的花括号是什么?
- amazon-web-services - 红移 DISTKEY / SORTKEY
- c# - C# Windows 应用程序日期时间在部署时不起作用
- python - 比较对象 - 为什么 == 在以下示例中返回 'False'?