Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ QTreeWidget

Автор: gpepsi 29.7.2010, 7:58

странное поведение при удалении элемента.

Сначала есть строки. Например
1. aaa
2. bbb

пытаюсь удалить строку и перерисовать QTreeWidget

treeWidget->clear();

foreach(...)
{
    QTreeWidgetItem* item = new QTreeWidgetItem();
    ...
    treeWidget->addTopKevelItem(item);
}

treeWidget->reset();


в результате получаю
1. bbb
2. bbb

откуда взялась вторая сторока ?

Автор: Litkevich Yuriy 29.7.2010, 11:08

не увидел в коде процесса удаления. Вижу только создание ещё одного элемента

Автор: gpepsi 29.7.2010, 11:41

Цитата(Litkevich Yuriy @ 29.7.2010, 12:08) *
не увидел в коде процесса удаления. Вижу только создание ещё одного элемента


clear в самом начале

Автор: Litkevich Yuriy 29.7.2010, 12:24

не понятно зачем весь виджет чистить, если тебе надо только конкретную строку удалить - это раз.
приведённый код вообще ничего не объясняет - это два.

Автор: gpepsi 29.7.2010, 14:10

Цитата(Litkevich Yuriy @ 29.7.2010, 13:24) *
не понятно зачем весь виджет чистить, если тебе надо только конкретную строку удалить - это раз.


так проще

Цитата(Litkevich Yuriy @ 29.7.2010, 13:24) *
приведённый код вообще ничего не объясняет - это два.

код - это пример работы с виджетом. Что он еще должен пояснить ?

Автор: Litkevich Yuriy 29.7.2010, 15:14

не понятен foreach.
Тот код, который ты привёл, ни когда не приведёт к случайному элементу. А тот код который ты не привел и виноват в этом случайном элементе

Цитата(gpepsi @ 29.7.2010, 18:10) *
так проще
ни когда бы мне такая мысль в голову не пришла. Удалить один элемент намного проще.

Автор: gpepsi 6.8.2010, 10:49

Цитата(Litkevich Yuriy @ 29.7.2010, 16:14) *
ни когда бы мне такая мысль в голову не пришла. Удалить один элемент намного проще.


ну вот пример.
В модели лежат данные, которые отображаются как список
1
2
3
4


пришли новые данные
2
3
5


ты предлагаешь удалить ненужные данные и добавить новые.
Приведи алгоритм как это сделать за один проход.

З.Ы. Поэтому проще грохнуть и отрисовать новые данные...

Автор: Алексей1153 6.8.2010, 10:54

gpepsi, а просто заменить поверх ? )

Автор: gpepsi 6.8.2010, 19:13

Цитата(Алексей1153 @ 6.8.2010, 11:54) *
gpepsi, а просто заменить поверх ? )


Цитата(gpepsi @ 6.8.2010, 11:49) *
З.Ы. Поэтому проще грохнуть и отрисовать новые данные...

Автор: Алексей1153 7.8.2010, 6:53

gpepsi, вот ведь заладил... Ну грохай. Когда будет элементов этак 5000 - передумаешь :)

Автор: gpepsi 7.8.2010, 7:24

Цитата(Алексей1153 @ 7.8.2010, 7:53) *
gpepsi, вот ведь заладил... Ну грохай. Когда будет элементов этак 5000 - передумаешь :)


не нервничай :)

Цитата(Алексей1153 @ 6.8.2010, 11:54) *
gpepsi, а просто заменить поверх ? )

объясни тогда что ты имел ввиду

Автор: Алексей1153 7.8.2010, 11:28

gpepsi, да никто не нервничает :) Когда станет всё тормозить, сам поймёшь :) Объяснять сейчас не вижу смысла

Автор: gpepsi 7.8.2010, 12:23

Цитата(Алексей1153 @ 7.8.2010, 12:28) *
Когда станет всё тормозить, сам поймёшь :) Объяснять сейчас не вижу смысла

а зачем тогда влез в тему ?

Автор: Алексей1153 7.8.2010, 17:23

gpepsi, тебе не понять ;)

Автор: Litkevich Yuriy 7.8.2010, 18:41

вообще для работы с БД есть модель/представление.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)