Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Mike-Aiki от Октябрь 22, 2012, 09:14



Название: Кол-во столбцов в модели и QTreeView
Отправлено: Mike-Aiki от Октябрь 22, 2012, 09:14
Не совсем понятно, зачем в обработчике QAbstractItemModel::columnCount() может возвращаться разное кол-во столбцов для родителей/детей? Читаем в справке: "In most subclasses, the number of columns is independent of the parent."  Но, например, в Qt-шном примере "Simple Tree Model":

Код:
int TreeModel::columnCount(const QModelIndex &parent) const
 {
     if (parent.isValid())
         return static_cast<TreeItem*>(parent.internalPointer())->columnCount();
     else
         return rootItem->columnCount();
 }

Зачем? Реально один черт всегда 2 возвращается...  Ведь в представлении дерева в любом случае будет одно кол-во столбцов? И что будет в представлении, если возвращается разное кол-во столбцов?


Название: Re: Кол-во столбцов в модели и QTreeView
Отправлено: Bepec от Октябрь 22, 2012, 09:30
Я по секрету скажу - у родителя может быть 1 столбец, у ребёнка 2, у внука - 15.


Название: Re: Кол-во столбцов в модели и QTreeView
Отправлено: Mike-Aiki от Октябрь 22, 2012, 09:49
Я по секрету скажу - у родителя может быть 1 столбец, у ребёнка 2, у внука - 15.

Я понимаю, что в модели может быть всё, что угодно. ;)  Но как это сопрягается с представлением QTreeView, к примеру? Что, при expanded элемента ребёнка появится 15 столбцов для внука? ;)  Вроде как реализация QTreeView не включает вложенных таблиц...

 Т.е., если серьезно, то это для собственных реализаций представлений? (Собственно, смутила реализация в Qt-example, ведь там демонстрируется поведение стандартного класса представления.)