Ситуация : есть выбранный элемент. необходимо его по клику удалить.
пытаюсь вот так :
ui->parametersList->removeItemWidget(ui->parametersList->item(ui->parametersList->currentRow()));
qDeleteAll(ui->parametersList->selectedItems());
Andrewshkovskii, если удаляется элемент, покладенный через визард, то отправь сигнал и в обработчике добавь сендера в очередь на убийство. В таймере очередь обрабатывай
если элемент создан вручную, то тут своя логика, зависящая от устройства хранения контролов
Алексей, я Вас не совсем понял. Элементы добавлены в виджет в "ручную", через код. Я то пофиксил проблему, но мне интересно, почему не работал первый вариант.
Ну получается так : "забрать элемент, удалить элемент", странно, что приходиться делать так, когда есть "родные" методы QListWidget для удаления указанный/выделенных элементов.
Andrewshkovskii, о каких родных методах вы говорите? Я таких методов не знаю. Единственный такой метод, это тот что я привёл выше, т.е. takeItem. Но он удаляет итем из модели, не удаляя сам итем. Поэтому приходится его удалять ручками.
Если же нужно удалить именно выделенные элементы, то лучше делать так как написали во втором примере
qDeleteAll(ui->parametersList->selectedItems());
Аааа..спасибо, а то я никак вникнуть не мог!:)
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)