我正在使用QListWidget来存储运行后台进程的标签:
// process starts
ui->runningProcesses->addItem("Process: "+processID);
这仅供显示 . 用户不选择项目或以其他方式与列表框交互 . 后台进程完成后,我想删除相应的列表框项 . 我试过了:
delete ui->runningProcesses->takeItem(ui->runningProcesses->findItems("Process:"+processID,Qt::MatchExactly) );
但这是无效的语法 . 最好的方法是什么?
1 回答
QListWidget::findItems返回
QList<QListWidgetItem*>
. 您无法删除列表,您需要遍历列表并删除其中的每个项目 .请注意,除非您愿意使用返回的
QListWidgetItem
做另一件事,否则无需使用QListWidget::takeItem
.如果你的目标只是从列表中删除项目的行,你只需要
delete
它 . 如_2817187中所述: