从循环中的 QStandardItem 中删除项目
Remove item from QStandardItem in loop
我想从项目中删除特定的子项目,我的父项目是常量,即。我不能用不同的父项目替换它,我必须处理我拥有的那个。子项本身有多个级别的子项。
我已经试过了,但它不起作用。
QStringList list; // contains list of names that should be deleted
for(int row=0; row < parent->rowCount(); ++row)
{
QStandardItem* child = parent->child(row);
bool found = 0;
for(size_t i = 0; i<list.size(); ++i)
{
if(list[i] == child->text()) // check if child should be removed
{
found = 1;
break;
}
}
if(!found)
{
parent->removeRow(row); // this breaks child ordering for next iteration
}
}
我该如何正确操作?提前致谢。
删除行时不应增加行。或者,如果你继续增加它,你应该在 removeRow:
之后修复(减少)行数
parent->removeRow(row); // this breaks child ordering for next Iteration
--row;
我想从项目中删除特定的子项目,我的父项目是常量,即。我不能用不同的父项目替换它,我必须处理我拥有的那个。子项本身有多个级别的子项。 我已经试过了,但它不起作用。
QStringList list; // contains list of names that should be deleted
for(int row=0; row < parent->rowCount(); ++row)
{
QStandardItem* child = parent->child(row);
bool found = 0;
for(size_t i = 0; i<list.size(); ++i)
{
if(list[i] == child->text()) // check if child should be removed
{
found = 1;
break;
}
}
if(!found)
{
parent->removeRow(row); // this breaks child ordering for next iteration
}
}
我该如何正确操作?提前致谢。
删除行时不应增加行。或者,如果你继续增加它,你应该在 removeRow:
之后修复(减少)行数parent->removeRow(row); // this breaks child ordering for next Iteration
--row;