从qlistWidget中删除所选项目

问题描述 投票:14回答:2

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

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

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

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

c++ qt qt5 qlistwidget
2个回答
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());

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.
}
© www.soinside.com 2019 - 2024. All rights reserved.