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