【发布时间】:2014-10-27 07:33:07
【问题描述】:
是否允许为QTreeView 实现以下删除算法,其中QTreeView::setSelectionMode(QAbstractItemView::ExtendedSelection);,即可选择多个项目?
QModelIndexList indexList = treeView->selectionModel()->selectedRows();
QList< QPersistentModelIndex > persistentIndexList;
for (QModelIndex const & index : indexList) {
persistentIndexList.append(index);
}
for (QPersistentModelIndex const & persistentIndex : persistentIndexList) {
if (!treeModel->removeRow(persistentIndex.row(), persistentIndex.parent())) {
qWarning() << "Can't remove row" << persistentIndex;
}
}
我认为,有可能出现这样的情况,即在子级之前删除父级,甚至持久索引在那一刻都无效。我错了吗?
必须在removeRows 中检查hasIndex 的模型吗?
【问题讨论】:
标签: qt model-view-controller qtreeview model-view