Название: QTreeWidget - правка элементов дерева и его количества Отправлено: AD от Февраль 25, 2009, 15:42 Вот код, который проходит по всем элементам и ищет повторяющиеся. Индексы этих элементов запоминает, а затем чистит их. Но, тут непонятная штука вылезла. Что чистит не все повторяющиеся, а только некоторые, хотя заполнение списка идет правильно. Ну то есть, было 5 повторяющихся элементов, осталось 2. Почему так???? Вот код этой штуковины.
Код
Буду благодарен за помощь.... Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: pastor от Февраль 25, 2009, 16:04 1) На каком уровне вложенности должна происходить "чистка"?
2) Почему k=j+1 ? Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: spirit от Февраль 25, 2009, 16:21 вот тут QTreeWidgetItemIterator по идее должен помочь. :)
Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: AD от Февраль 25, 2009, 16:24 Цитата: pastor 1) На каком уровне вложенности должна происходить "чистка"? 1) На 3-ем уровне должна производиться чистка.2) Почему k=j+1 ? 2) Эти два цикла бегут по одному и тому же массиву. k-ый элемент - это след. элемент за j-ым. Пытался сделать, чтобы второй цикл бежал с конца, но при дебаге во 2 цикл даже не заходил, почему-то! Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: AD от Февраль 25, 2009, 21:55 Ау! Буду благодарен за помощь!
Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: Makss от Февраль 25, 2009, 22:06 удаляй не по индексу а по указателю, тем самым предостережёшь себя от кучи проблем
Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: AD от Февраль 27, 2009, 09:07 Теперь этот метод выглядит так, но от глюка еще не избавлен!
Код
Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: BRE от Февраль 27, 2009, 09:26 Вот смотри:
Индекс : Значение ---------------------- 0 AAA <- j = 0 1 AAA <- k = 1 2 AAA 3 BBB 4 CCC Убрали элемент с индексом 1. После этого: Индекс : Значение ---------------------- 0 AAA <- j = 0 1 AAA 2 BBB <- k = 2 3 CCC Вот и происходит пропуск второго AAA. Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: spirit от Февраль 27, 2009, 09:31 говорю ж итератор тут самое оно:
взяли первый айтем пробежались по дереву, грухнули все повторяющиеся, взяли второй айтем удалили все повторяющиеся и так пока не дошли до конца списка. и вот тут как раз мощь итератора и приходит на помощь, т.к. проходится все дерево. Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: AD от Февраль 27, 2009, 10:19 Вот смотри: СПАСИБО! :) Помогло. Жаль у вас нельзя тут репутацию повышать! Этим crossplatform лучше! :)Индекс : Значение ---------------------- 0 AAA <- j = 0 1 AAA <- k = 1 2 AAA 3 BBB 4 CCC Убрали элемент с индексом 1. После этого: Индекс : Значение ---------------------- 0 AAA <- j = 0 1 AAA 2 BBB <- k = 2 3 CCC Вот и происходит пропуск второго AAA. Название: Re: QTreeWidget - правка элементов дерева и его количества Отправлено: BRE от Февраль 27, 2009, 11:01 СПАСИБО! :) Помогло. Жаль у вас нельзя тут репутацию повышать! Этим crossplatform лучше! :) Просто у всех пользователей с данного сайта репутацию повышать уже некуда, такая она огромная. ;) ;D |