param "QModelIndex &parent" in QAbstractTableModel::columnCount and/or QAbstractTableModel::rowCount 什么时候有用?

When is param "QModelIndex &parent" in QAbstractTableModel::columnCount and/or QAbstractTableModel::rowCount useful?

试图进一步了解 QAbstractTableModel,我遇到了 rowCountcolumnCount[=29= 的虚拟方法] 子类化时需要实现 QAbstractTableModel.

int QAbstractItemModel::columnCount(const QModelIndex &parent = QModelIndex()) const为例,Qt官方文档说“在大多数子类中,列数与父项无关。";并给出以下代码片段:

int DomModel::columnCount(const QModelIndex &parent) const
{
    return 3;
}

上面的内容很容易理解,但是,这让我想知道什么时候列号不会独立于参数"parent"?我根本想不出 table 的列号不是固定常量,而是取决于特定单元格索引的变量的场景。

似乎根本不需要这个参数,有人可以分享一个索引参数实际有用的例子吗?

当您有层次结构时,parent 参数很有用,因为您的数据取决于它在层次结构中的位置,因此可以取决于行数或列数。

从文档中的这张图片,您可以想象包含 A 的行的 column-count 可能与子元素,例如包含 B.

的行

您可以在文档中阅读更多内容: https://doc.qt.io/qt-5/model-view-programming.html#model-classes