什么是删除多个指标的QStandardItemModel的正确方法?(What's the

2019-09-24 07:42发布

我试图删除QTableView中的所有选定的指标,

现在我用:

foreach (const QModelIndex & idx, model->selectionModel()->selectedIndexes())
{
    model->removeRow (idx.row()); // Obviously bug
}

有一个明显的问题是,一旦你删除的行,行ID无效,W

由于没有函数,它直接在指数(或做索引的行为就像当数据发生变化,将获得一个无效迭代器?),我不知道该怎么办。

Answer 1:

QPersistanceModelIndex这使指数的有效状态类。 我想,它似乎是工作。

QList<QPersistentModelIndex> indexes;

foreach (const QModelIndex &i, ui->tableView->selectionModel()->selectedIndexes())
    indexes << i;

foreach (const QPersistentModelIndex &i, indexes)
    ui->tableView->model()->removeRow(i.row());

我希望这将有助于。



文章来源: What's the right way to remove multiple indices for a QStandardItemModel?
标签: qt model qt4