删除QTreeView

时间:2016-04-12 09:57:27

标签: c++ qt qt5 qt5.5

我有一个带有元素baseItem的QTreeView,它本身包含一些子节点:

baseItem
  - child1
  - child2
  - child3

现在我要删除此项目的所有子项,但不删除项目本身。我目前的做法是致电

if (baseItem->hasChildren())
    baseItem->removeRows(rowCnt,baseItem->rowCount());

...其中rowCnt是baseItem所在的行索引号。不幸的是,只有当baseItem位于rowCnt = 0时才会起作用。这可能有什么问题?我怎么能删除baseItem的所有子节点?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

...其中rowCnt是baseItem所在的行索引号。

不,rowCnt是父树下子树中的索引。 所以:

if (baseItem->hasChildren())
    baseItem->removeRows(0,baseItem->rowCount());