Когда параметр «QModelIndex & parent» в QAbstractTableModel :: columnCount и / или QAbstractTableModel :: rowCount полезен? - PullRequest
0 голосов
/ 18 февраля 2019

Пытаясь понять QAbstractTableModel , я наткнулся на виртуальные методы rowCount и columnCount , которые необходимо реализовать при создании подкласса QAbstractTableModel .

Взять int QAbstractItemModel :: columnCount (const QModelIndex & parent = QModelIndex ()) const Например, в официальной документации Qt написано " В большинстве подклассов число столбцовне зависит от родителя.";и дает следующий фрагмент кода:

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

Вышесказанное просто для понимания, что, тем не менее, заставляет меня задуматься, когда номер столбца НЕ будет независимым от параметра "parent"?Я просто не могу придумать сценарий, в котором номер столбца таблицы является не фиксированной константой, а переменной, зависящей от индекса конкретной ячейки.

Кажется, этот параметр не нуженвообще, может кто-нибудь поделиться примером, где индексный параметр действительно полезен?

1 Ответ

0 голосов
/ 18 февраля 2019

Параметр parent полезен, когда у вас есть иерархия, поскольку ваши данные зависят от того, где они расположены в иерархии, и поэтому могут зависеть от количества строк или столбцов.

enter image description here

Из этого рисунка из документа вы можете представить, что число столбцов может отличаться для строки, содержащей A , чемподэлементы, такие как строка, содержащая B .

Вы можете прочитать больше в документе: https://doc.qt.io/qt-5/model-view-programming.html#model-classes

...