C++ 从listWidget中删除所选项目
如何从C++ 从listWidget中删除所选项目,c++,qt,qt5,qlistwidget,C++,Qt,Qt5,Qlistwidget,如何从qlistWidget中删除所选项目 我已经尝试编写以下代码,但没有成功 QList<QListWidgetItem*> items = ui->listWidget->selectedItems(); foreach(QListWidgetItem item, items){ ui->listWidget->removeItemWidget(item); } QList items=ui->listWidget->selectedItems(
qlistWidget
中删除所选项目
我已经尝试编写以下代码,但没有成功
QList<QListWidgetItem*> items = ui->listWidget->selectedItems();
foreach(QListWidgetItem item, items){
ui->listWidget->removeItemWidget(item);
}
QList items=ui->listWidget->selectedItems();
foreach(QListWidgetItem、items){
ui->listWidget->removeItemWidget(项目);
}
现在,如何删除我从
qlistWidget
中选择的项目?从qlistWidget
中删除项目的一种方法是使用qlistWidget::takeItem
删除并返回项目:
QList<QListWidgetItem*> items = ui->listWidget->selectedItems();
foreach(QListWidgetItem * item, items)
{
delete ui->listWidget->takeItem(ui->listWidget->row(item));
}
要使用
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.
}
QList items=ui->listWidget->selectedItems();
foreach(QListWidgetItem*item,items){
ui->listWidget->removeItemWidget(项目);
delete item;//Qt文档警告您销毁项以有效地将其从QListWidget中删除。
}
为什么项目不是指针?@武强:我已经将项目
更改为*项目
。但仍然不想删除项目或任何项目。回答得好。请注意,qDeleteAll
的示例是说明性的。。。。它仅删除用户界面中选定的项目<代码>QdeletAll(ui->listWidget->items())代码>清除所有条目。一般来说,qDeleteAll(一些有效数据列表)代码>完成了这项工作。谢谢,但是第一种方法出现了一个错误QModelIndex QListWidget::indexFromItem(QListWidgetItem*)const'受保护
@LionKing您是对的。您应该使用QListWidget::row
。答案已更新。@Youda008removitemWidget
仅删除项目上设置的小部件。要删除整行,应使用takeItem
,并将其删除以释放内存。看:@Nejat:上面说的是手册。但是我不明白删除项目上设置的小部件是什么意思。什么是小部件集
,或者在项目上设置小部件
意味着什么??
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.
}