Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не удаляется элемент из QListWidget
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
Andrewshkovskii
Ситуация : есть выбранный элемент. необходимо его по клику удалить.
пытаюсь вот так :
ui->parametersList->removeItemWidget(ui->parametersList->item(ui->parametersList->currentRow()));

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

Быстрое решение :
qDeleteAll(ui->parametersList->selectedItems());

Есть ли у кого альтернатива и догадка того, почему не удаляется первым способом?
Есть ещё вариант с takeItem, но это не совсем "то"...
Алексей1153
Andrewshkovskii, если удаляется элемент, покладенный через визард, то отправь сигнал и в обработчике добавь сендера в очередь на убийство. В таймере очередь обрабатывай

если элемент создан вручную, то тут своя логика, зависящая от устройства хранения контролов
Andrewshkovskii
Алексей, я Вас не совсем понял. Элементы добавлены в виджет в "ручную", через код. Я то пофиксил проблему, но мне интересно, почему не работал первый вариант.
igor_bogomolov
Цитата(Andrewshkovskii @ 20.12.2010, 19:20) *
Есть ещё вариант с takeItem, но это не совсем "то"...
Почему не то? Я часто так делаю delete takeItem(...);
Andrewshkovskii
Ну получается так : "забрать элемент, удалить элемент", странно, что приходиться делать так, когда есть "родные" методы QListWidget для удаления указанный/выделенных элементов.
igor_bogomolov
Andrewshkovskii, о каких родных методах вы говорите? Я таких методов не знаю. Единственный такой метод, это тот что я привёл выше, т.е. takeItem. Но он удаляет итем из модели, не удаляя сам итем. Поэтому приходится его удалять ручками.

Если же нужно удалить именно выделенные элементы, то лучше делать так как написали во втором примере
qDeleteAll(ui->parametersList->selectedItems());

removeItemWidget делает совсем не то. Он удаляет виджет установленный для итема.
Andrewshkovskii
Аааа..спасибо, а то я никак вникнуть не мог!:)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.