![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Каким образом можно просмотреть все элементы дерева, представленного QTreeWidget? Почитал мануал и не узнал, что и какими функциями это достигается. Можно примерчик либо ссылочку на примерчик?
Сильно ли изменится алгоритм просмотра элементов, если вместо QTreeWidget используется QTreeView? В ситуации такой: Tracks | |--OnGround | |--file1 | |--file1 | |--file2 | |--file3 Есть ли возможность увидеть соседей второго узла file1? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
была тема вроде "обход дерева" поищи по форуму.
к стати быстрые ссылки в FAQ, которые я собирал - рулят. |
|
|
AD |
![]()
Сообщение
#3
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Вот нашел кое-что. Кидаю ответ сюда, чтобы быстрее можно было найти, не переходя 5 раз по ссылкам.
Цитата Всё вопрос решён
Перебор всех корневых элментов:
ну а по всем элементам через рекурсию
|
|
|
AD |
![]()
Сообщение
#4
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Вопрос про соседа второго узла file1 не нашел. Сможете помочь? Заранее спасибо.
|
|
|
AD |
![]()
Сообщение
#5
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Вот код, который проходит по всем элементам и ищет повторяющиеся. Индексы этих элементов запоминает, а затем чистит их. Но, тут непонятная штука вылезла. Что чистит не все повторяющиеся, а только некоторые, хотя заполнение списка идет правильно. Ну то есть, было 5 повторяющихся элементов, осталось 2. Почему так???? Вот код этой штуковины.
|
|
|
AD |
![]()
Сообщение
#6
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Блин, неужели никто с подобным не сталкивался?
|
|
|
AD |
![]()
Сообщение
#7
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Перешел к QTreeView. соответственно, теперь делаю модель-представление.
Вот сама используемая модель. То есть проблема с нажатием решена полностью и довольно удобно TreeModel
Но проблему с некоторыми лишними узлами пока решить не удалось. То есть при проходе по модели дерева, остаются лишние элементы. И как с этим бороться - не знаю! ![]()
|
|
|
AD |
![]()
Сообщение
#8
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
На прог-орге подсказали ошибку, исправил. Правильный код прохода по дереву и выуживанию лишних элементов такой:
P.S. Ошибка была в том, что удаляя элемент прямо в цикле, я изменяю счетчик элементов и тем самым перескакиваю элемент, который следует удалить. Сообщение отредактировал AD - 27.2.2009, 11:09 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.6.2025, 4:07 |