Russian Qt Forum
Ноябрь 26, 2024, 02:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeWidget кто есть кто...  (Прочитано 2670 раз)
pro100skif
Гость
« : Июнь 22, 2014, 04:29 »

Доброго времени суток, столкнулся с проблемой: есть QTreeWidget в нем(заранее извиняюсь если что то неправильно назову) один элемент назовем его элемент первого уровня, он является parent для нескольких других элементов назовем их элементы второго уровня, ну и есть еще несколько элементов третьего уровня для каждого элемента второго уровня.Мне нужно узнать кто есть кто, в идеале нужно какое то условие для переключения тригера, например if(....) int trig=1 ; всю ночь сидел сделал только для 2 виджета с 2 уровнями.Заранее спасибо за помощь.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Июнь 22, 2014, 05:59 »

При создании QTreeWidgetItem в конструктор можно передавать параметр type.
Установите для каждого уровня свой тип.
« Последнее редактирование: Июнь 22, 2014, 06:01 от Old » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Июнь 22, 2014, 11:36 »

A просто просканировать вверх, напр
Код
C++ (Qt)
int CalcDepth( QTreeWidgetItem * itm )
{
int depth = -1;
while (itm) {
 ++depth;
 itm = itm->parent();
}
return depth;
}
Записан
_OLEGator_
Гость
« Ответ #3 : Июнь 22, 2014, 14:22 »

Если уж совсем из пушки по воробьям - можно создать наследника от QTreeWidgetItem и добавить в него всю необходимую информацию.
Еще вот так можно:
Код
C++ (Qt)
void QTreeWidgetItem::setData ( int column, int role, const QVariant & value ) [virtual]
Записан
pro100skif
Гость
« Ответ #4 : Июнь 22, 2014, 14:33 »

A просто просканировать вверх, напр
Код
C++ (Qt)
int CalcDepth( QTreeWidgetItem * itm )
{
int depth = -1;
while (itm) {
 ++depth;
 itm = itm->parent();
}
return depth;
}
сканировать пробовал работает через раз иногда когда parent нету программа вылетает
но сейчас вроде все норм работает спасибо
« Последнее редактирование: Июнь 22, 2014, 14:43 от pro100skif » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.176 секунд. Запросов: 22.