我有QStandardItemModel
一个单列(代表一个列表)。列表中的每个项目都有一个唯一的整数 ID,存储为QStandardItem
的数据(QStandardItem::setData
我猜Qt::UserRole+1
默认情况下通过它存储)。
给定其中一个 ID,我想从模型中查找并删除相应的行。现在我正在这样做:
void NetworkManager::removeSessionFromModel (QStandardItemModel *model, int sessionId) {
foreach (const QStandardItem *item, model->findItems("*", Qt::MatchWildcard)) {
if (item->data() == sessionId) {
model->removeRow(item->index().row());
break;
}
}
}
它工作正常,但该功能的每一行都让我畏缩。有没有更清洁的方法来做到这一点?