从listWidget中删除选中的项目

Remove selected items from listWidget

本文关键字:项目 删除 listWidget      更新时间:2023-10-16

如何从QListWidget中删除选中的项?

我试着写下面的代码,但它不工作。

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

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