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

baseItem
  - child1
  - child2
  - child3


现在,我要删除该项目的所有子项目,而不是项目本身。我目前的做法是打电话

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


...其中rowCnt是baseItem所在的行索引号。不幸的是,这仅在baseItem为rowCnt = 0时才起作用。这有什么问题吗?我还应该如何删除baseItem的所有子级?

谢谢!

最佳答案

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


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

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

关于c++ - 删除QTreeView中某个项目的所有子元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36569836/

10-11 16:52