0

我正在使用 QTreeView 和 QAbstractItemModel 来建立其数据也来自树结构的视图。但是当我从树结构(数据源)中删除一个节点时,我发现模型视图无法自动调整自身,它还使用了我不知道它指向哪个内存块的无效指针。我不知道如何刷新或我需要做什么来解决这个问题。

4

1 回答 1

3

要从模型中删除数据,请使用beginRemoveRows()endRemoveRows()beginRemoveRows告诉模型您现在将更改底层数据结构。然后更改结构并endRemoveRows在完成后调用。endRemoveRows 然后将触发通知以更新视图:

beginRemoveRows(QModelIndex(), 0, 0);
m_topLevelNodes.remove(0);
endRemoveRows();

这将删除第一个顶层行(及其子行),假设模型中的底层结构将顶层树项保存在名为m_topLevelNodes.

于 2013-07-15T05:09:36.847 回答