原因:在循环中removeRow删除多行,在删除某行时,其后的行会自动往前填充,不能按照原来的行号删除
model类中有一个QAbstractItemModel::beginRemoveRows,但是protected函数view中无法调用
解决办法:从后往前删除,如删除listview选中行
QVector<int> rows;for (auto it : this->selectedIndexes()) rows << it.row(); //选中行号for (auto it = rows.end(); it != rows.begin(); ) //倒序遍历{--it;model()->removeRow(*it);}