4

我想从项目中删除特定的子项,我的父项是 const,即。我不能用不同的父项替换它,我必须处理我拥有的那个。子项本身具有多个级别的子项。我已经尝试过了,但它不起作用。

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
    }
}

我该如何正确地做到这一点?提前致谢。

4

1 回答 1

3

删除行时不应增加行。或者,如果您继续增加它,您应该在 removeRow 之后修复(减少)行数:

parent->removeRow(row); // this breaks child ordering for next Iteration
--row;
于 2015-07-23T09:36:07.567 回答