0
我正在使用QTreeView和QAbstractItemModel來建立其數據也來自樹結構的視圖。但是當我從樹結構(數據源)中刪除一個節點時,我發現模型視圖不能自動調整自己,它也使用無效指針,我不知道它指向哪個內存塊。我不知道如何刷新或者我需要做些什麼來解決這個問題。如何刪除模型視圖中的項目?
我正在使用QTreeView和QAbstractItemModel來建立其數據也來自樹結構的視圖。但是當我從樹結構(數據源)中刪除一個節點時,我發現模型視圖不能自動調整自己,它也使用無效指針,我不知道它指向哪個內存塊。我不知道如何刷新或者我需要做些什麼來解決這個問題。如何刪除模型視圖中的項目?
要從模型中刪除數據,請使用beginRemoveRows()
和endRemoveRows()
。 beginRemoveRows
告訴您現在將改變基礎數據結構的模型。 然後更改結構並在完成時調用endRemoveRows
。然後endRemoveRows將觸發通知,以更新的觀點:
beginRemoveRows(QModelIndex(), 0, 0);
m_topLevelNodes.remove(0);
endRemoveRows();
這消除了第一個頂級行(及其子女),假設模型中的底層結構保存在一個容器中的頂級樹項目名爲m_topLevelNodes
。