Как я могу получить размер/глубину/ветки QTreeView?

Я не могу найти никакого способа получить размер, глубину и количество ветвей QTreeView.
Я имею в виду не размер его графического представления, а размер данных, хранящихся в дереве.


person Pietro    schedule 03.10.2013    source источник


Ответы (1)


Вам следует работать с моделью данных, а не с представлением.

Чтобы получить количество корневых ветвей, вы должны использовать метод rowColumn(QModelIndex()).

Чтобы получить глубину любого индекса (элемента), вы должны выбрать родительский индекс, пока он не останется действительным. Псевдокод:

QModelIndex index = /*your item*/;
int depth = 0;
while ( index.parent().isValid() )
{
  index = index.parent();
  depth++;
}
qDebug() << depth;

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

person Dmitry Sazonov    schedule 03.10.2013