1
之后增加孩子我有一个QTreeWidget
其中一旦单击某个项目的扩展 - 当itemExpanded
信号发出,我使用算法来构建QList<QTreeWidgetItem*>
并将其与QTreeWidgetItem::addChildren
添加到扩展项目。Qt的QTreeWidgetItem - 清理旧
这有效,但是如果我再次合拢并展开它,它会添加更多的孩子,所以我会得到重复的。所以我必须先移除旧的孩子。为此,我使用qDeleteAll(item->takeChildren())
,然后用addChildren
添加新的。事情是,它出于某种原因不起作用。它仍然是空的。
是否有一些执行此类操作的标准方法?
我不认为你应该使用itemExpanded信号添加和删除项目。尝试在单独的过程中执行此操作,并在实际需要更改时更新项目。 –
你是什么意思?我需要在扩展它们时添加它们。我正在处理一个非常深的目录,我无法添加所有内容,只能在扩展时添加扩展内容。 –
我不是QTreeWidget的专家,但我怀疑它是由于此功能导致的 “如果孩子已经插入别处,则不会再插入。” –