按值删除ListWidget项目
Delete ListWidget item by value
我正在使用qlistwidget存储用于运行背景过程的标签:
// process starts
ui->runningProcesses->addItem("Process: "+processID);
这仅用于显示。用户不选择项目或以其他方式与列表框进行交互。当背景过程完成后,我想删除相应的列表框项目。我尝试了:
delete ui->runningProcesses->takeItem(ui->runningProcesses->findItems("Process:"+processID,Qt::MatchExactly) );
但这是无效的语法。最好的方法是什么?
QListWidget::findItems
返回 QList<QListWidgetItem*>
。您无法删除列表,需要遍历列表并删除其中的每个项目。
请注意,除非您愿意使用返回的QListWidgetItem
做另一件事,否则无需使用QListWidget::takeItem
。
如果您的目的只是将项目的行从列表中删除,则只需要delete
即可。如文档中所述:
auto itemsToRemove= listWidget.findItems("Process: 7", Qt::MatchExactly);
for(auto item : itemsToRemove) delete item;
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 从链接列表c++中删除一个项目
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 既然存在危险,为什么项目要使用-I include开关
- cmake在我的项目中所需的所有静态库都不成功
- QT通过C++添加映射QML项目
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在linux上调试巨大的C++项目
- 在其他文件中创建类时在 c++ 项目中不起作用
- 使外部项目可用于find_package CMake
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- 在内部使用ComboBox拖动ListWidget项目
- 按值删除ListWidget项目
- 从listWidget中删除选中的项目