Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] QTreeWidget, индекс родительского элемента


Автор: Ivannet 19.3.2008, 22:28
Здравствуйте! 
Подскажите пожалуйста можно ли определить индекс родительского элемента  при выделении любого дочернего?

Например, для такого вида дерева, при выделении дочернего элемента child2.1,  индекс у родительского должен быть  1.

item1
  child1.1
  child1.2
item2
  child2.1

Название родительского элемента определяю таким образом:
QString nameParent =  treeWidget -> currentItem() -> parent() -> text(0);

а можно ли индекс определить?

Автор: JackYF 20.3.2008, 14:42
Цитата(Ivannet @  19.3.2008,  21:28 Найти цитируемый пост)
а можно ли индекс определить? 

Гм. А если дерево многоуровневое, тогда что такое индекс элемента? 

Автор: SABROG 20.3.2008, 14:45
Цитата(JackYF @ 20.3.2008,  14:42)
Цитата(Ivannet @  19.3.2008,  21:28 Найти цитируемый пост)
а можно ли индекс определить? 

Гм. А если дерево многоуровневое, тогда что такое индекс элемента?

Номер строки в текущем (распахнутом или схлопнутом) состоянии ?

Автор: Ivannet 20.3.2008, 15:28
Спасибо за вопросы, они помогли решить проблему!

Нужно было определить Номер строки, в  которой расположен элемент в дереве на уровень выше при выделении любого item'a. 

row     root
0            |__child1
 0           |     |___ch1.1
 1           |     |___ch1.2
              |
1            |___child2
  0                  |___ch2.1

То есть, например: у item ch2.1 родительский элемент(на уровень выше) child2 и его номер 1;
                                у item ch1.2 родительский элемент(на уровень выше) child1 и его номер 0.

Определил так:
int parentRow =  treeWidget -> currentIndex().parent().row();

Автор: SABROG 20.3.2008, 15:47
Правильно, там же иерархия классов:

QAbstarctItemVew->QTreeView->QTreeWidget

currentIndex() принадлежит QAbstractItemView, а там уже и в model можно залезть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)