QAbstractTableModel :: columnCount和/或QAbstractTableModel :: rowCount中的参数“ QModelIndex&parent”何时有用?

时间:2019-02-18 12:43:44

标签: qt qabstracttablemodel

尝试更多地了解 QAbstractTableModel ,我遇到了 rowCount columnCount 的虚拟方法,在子类化时需要实现这些方法QAbstractTableModel

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

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

上面提到的内容很容易理解,但是,这使我怀疑列号何时将不独立于参数“父”?我简直无法提出一种方案,其中表的列号不是固定常数,而是取决于特定单元格索引的变量。

似乎根本不需要此参数,有人可以分享一个示例,其中索引参数实际上是有用的吗?

1 个答案:

答案 0 :(得分:1)

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

enter image description here

从文档的这张图片中,您可以想象到,包含 A 的行的 column-count 可能不同于包含的行的子元素> B

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