在 QAbstractTableModel::columnCount 和/或 QAbstractTableModel::rowCount 中,参数 "QModelIndex &parent" 何时有用?

4
尝试更深入地了解QAbstractTableModel,我发现需要实现rowCount和columnCount的虚拟方法才能进行子类化QAbstractTableModel。
以int QAbstractItemModel :: columnCount(const QModelIndex&parent = QModelIndex())const为例,Qt官方文档称“在大多数子类中,列数与父项无关”,并给出以下代码片段:
int DomModel::columnCount(const QModelIndex &parent) const
{
    return 3;
}

上述内容很容易理解,但是让我想知道当列号不独立于参数“parent”时会发生什么?我无法想象一个表格的列数不是固定常量,而是取决于特定单元格的索引的变量的情况。这个参数似乎根本不需要,有人能分享一个实际使用索引参数的例子吗?

4
这段话只适用于分层视图,例如树形视图。表格中的项目没有任何父级。在树形视图中,不同项目的列数可能会有所不同,这取决于它们在层次结构中的位置。 - vahancho
@vahancho 收到,谢谢! - JackOuttaBox
1个回答

3

parent参数在您有层次结构时非常有用,因为数据取决于其在层次结构中的位置,因此可能会影响行数或列数。

enter image description here

从这张图片可以想象出,包含A的行的column-count可能与包含B的子元素不同。
您可以在文档中阅读更多信息: https://doc.qt.io/qt-5/model-view-programming.html#model-classes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接