crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Не удаляется элемент из QListWidget
Andrewshkovskii
  опции профиля:
сообщение 20.12.2010, 19:20
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


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

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

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

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

Сообщение отредактировал Andrewshkovskii - 20.12.2010, 19:22
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.12.2010, 23:55
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2886
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Andrewshkovskii, если удаляется элемент, покладенный через визард, то отправь сигнал и в обработчике добавь сендера в очередь на убийство. В таймере очередь обрабатывай

если элемент создан вручную, то тут своя логика, зависящая от устройства хранения контролов
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 21.12.2010, 0:38
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Алексей, я Вас не совсем понял. Элементы добавлены в виджет в "ручную", через код. Я то пофиксил проблему, но мне интересно, почему не работал первый вариант.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 21.12.2010, 1:03
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(Andrewshkovskii @ 20.12.2010, 19:20) *
Есть ещё вариант с takeItem, но это не совсем "то"...
Почему не то? Я часто так делаю delete takeItem(...);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 21.12.2010, 1:52
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Ну получается так : "забрать элемент, удалить элемент", странно, что приходиться делать так, когда есть "родные" методы QListWidget для удаления указанный/выделенных элементов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 21.12.2010, 2:10
Сообщение #6


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Andrewshkovskii, о каких родных методах вы говорите? Я таких методов не знаю. Единственный такой метод, это тот что я привёл выше, т.е. takeItem. Но он удаляет итем из модели, не удаляя сам итем. Поэтому приходится его удалять ручками.

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

removeItemWidget делает совсем не то. Он удаляет виджет установленный для итема.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 21.12.2010, 2:11
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Аааа..спасибо, а то я никак вникнуть не мог!:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.9.2019, 19:37