从qlistWidget中删除所选项目

时间:2014-08-21 02:24:46

标签: c++ qt qt5 qlistwidget

如何从qlistWidget中删除所选项目。

我尝试编写以下代码,但不起作用。

QList<QListWidgetItem*> items = ui->listWidget->selectedItems();
foreach(QListWidgetItem item, items){
    ui->listWidget->removeItemWidget(item);
}

现在,如何删除我从qlistWidget中选择的项目?

2 个答案:

答案 0 :(得分:23)

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());

答案 1 :(得分:2)

使用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.
}