param "QModelIndex &parent" in QAbstractTableModel::columnCount and/or QAbstractTableModel::rowCount 什么时候有用?
When is param "QModelIndex &parent" in QAbstractTableModel::columnCount and/or QAbstractTableModel::rowCount useful?
试图进一步了解 QAbstractTableModel,我遇到了 rowCount 和 columnCount[=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
试图进一步了解 QAbstractTableModel,我遇到了 rowCount 和 columnCount[=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