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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по QTreeWidget  (Прочитано 3842 раз)
Acrobat
Гость
« : Декабрь 24, 2016, 18:08 »

Доброго времени суток. Есть небольшой вопрос по QTreeWidget. Вот создавал я много корневых Item. После этого, как мне обратиться к любому из них? Сохранить все указатели на Itemы в контейнере и в случае необходимости добывать от туда указатель и создавать дочерние элементы?
Записан
Swa
Самовар
**
Offline Offline

Сообщений: 170


Просмотр профиля
« Ответ #1 : Декабрь 24, 2016, 18:32 »

http://doc.qt.io/qt-4.8/qtreewidget.html#topLevelItem ?
Записан
ingwarsmith
Новичок

Offline Offline

Сообщений: 10


Просмотр профиля
« Ответ #2 : Январь 06, 2017, 20:17 »

Для обращения к item'у по его индексу:
Код:
QTreeWidgetItem* QTreeWidget::topLevelItem(int index) const

Наоборот, для определения индекса item'а верхнего уровня (index):
Код:
int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem * item) const

Удобным может оказаться и такой вызов (возврат указателя выделенного элемента QTreeWidget):
Код:
QTreeWidgetItem* QTreeWidget::currentItem() const

Для случая большого числа корневых элементов это более удобно.
Была необходимость создания достаточно разветвленного QTreeWidget, с каждым корневым элементом которого сопоставляется проект расчета, производимого программой и структура дочерних элементов элемента проекта строго типизированная. Для реализации такого дерева использовался потомок QTreeWidget из элементов TreeElement (потомок QTreeWidgetItem с указанием типа элемента ч/з enum). В дереве для индексации по корневым элементам использован QMap<int, TreeElement>. Разумеется, данные проекта расчета хранятся в других объектах (различных типов), хранящихся в контейнерах, причем каждый объект данных хранит указатель на соответствующий элемент TreeElement в дереве. Всего же всех элементов дерева, как правило, не более 80 (определяется числом открытых в программе проектов расчета).
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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