Удалить выбранные элементы из списка виджетов
Как удалить выбранные элементы из qlistWidget
,
Я пытался написать следующий код, но не работает.
QList<QListWidgetItem*> items = ui->listWidget->selectedItems();
foreach(QListWidgetItem item, items){
ui->listWidget->removeItemWidget(item);
}
Теперь, как удалить элементы, которые я выбрал из qlistWidget
?
2 ответа
Решение
Один из способов удалить элемент из QListWidget
это использовать QListWidget::takeItem
который удаляет и возвращает элемент:
QList<QListWidgetItem*> items = ui->listWidget->selectedItems();
foreach(QListWidgetItem * item, items)
{
delete ui->listWidget->takeItem(ui->listWidget->row(item));
}
Другой способ заключается в qDeleteAll
:
qDeleteAll(ui->listWidget->selectedItems());
Чтобы дать решение с removeItemWidget
:
QList<QListWidgetItem*> items = ui->listWidget->selectedItems();
foreach(QListWidgetItem* item, items){
ui->listWidget->removeItemWidget(item);
delete item; // Qt documentation warnings you to destroy item to effectively remove it from QListWidget.
}