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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Полный путь по ветка QTreeWidget  (Прочитано 2582 раз)
NezLich
Гость
« : Август 12, 2012, 23:38 »

Есть компонент QTreeWidget.
В нем есть элементы:
Root
      -- Device
      -- Folder
          -- MyFolder
Так вот, как можно получить полный путь от Root до MyFolder ?
То есть, например, у меня выделен MyFolder и мне нужно его получить в виде Root->Folder->MyFolder ?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #1 : Август 13, 2012, 01:35 »

Код
C++ (Qt)
QTreeWidget *leafItem; // MyFolder
QString path = leafItem->text(0);
QTreeWidget *item = leafItem;
while (item = item->parent())
   path += item->text(0) + "->";
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #2 : Август 13, 2012, 09:29 »

Так наоборот получится: "MyFolder->Folder->Root".
Да ещё и "->" в конце, т.е. "MyFolder->Folder->Root->"
Я бы внутри цикла сложил все тексты в QStringList c помощью list.prepend(item->text(0)), а после цикла сделал list.join("->").
Но это уже, конечно, детали.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #3 : Август 13, 2012, 18:12 »

ой, перепутал - хотел написать path.insert(0, item->text(0) + "->");
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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