crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Не удаляется элемент из QListWidget
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Andrewshkovskii Дата 21.12.2010, 2:11
  Аааа..спасибо, а то я никак вникнуть не мог!:)
igor_bogomolov Дата 21.12.2010, 2:10
  Andrewshkovskii, о каких родных методах вы говорите? Я таких методов не знаю. Единственный такой метод, это тот что я привёл выше, т.е. takeItem. Но он удаляет итем из модели, не удаляя сам итем. Поэтому приходится его удалять ручками.

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

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

если элемент создан вручную, то тут своя логика, зависящая от устройства хранения контролов
Andrewshkovskii Дата 20.12.2010, 19:20
  Ситуация : есть выбранный элемент. необходимо его по клику удалить.
пытаюсь вот так :
ui->parametersList->removeItemWidget(ui->parametersList->item(ui->parametersList->currentRow()));

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

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

Есть ли у кого альтернатива и догадка того, почему не удаляется первым способом?
Есть ещё вариант с takeItem, но это не совсем "то"...
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 4:37