繁体   English   中英

如何从QTreeWidget删除顶级QTreeWidgetItem?

[英]How do I delete a top level QTreeWidgetItem from a QTreeWidget?

如果顶层项目中没有子节点,我将尝试删除顶层树小部件项目。 正确的方法是什么? 我似乎在Qt的文档中找不到API调用。 仅在顶级树小部件项上调用delete是安全的吗? 我还没有遇到任何问题,但是我想知道这是否安全。 非常感谢。

if(topLevelTreeWidgetItem->childCount() > 1) {
  topLevelTreeWidgetItem->removeChild(childItem);
}
else
{
  delete topLevelTreeWidgetItem;
}

直接delete QTreeWidgetItem是完全安全的。

根据〜QTreeWidgetItem()的文档:

销毁该树小部件项目。 该项目将从已添加该项目的QTreeWidgets中删除。 这样可以随时安全地删除项目。

在实践中,我已经在许多QTreeWidgetItems上使用了delete ,并且效果很好。

要删除顶级项目,请调用QTreeWidget :: takeTopLevelItem方法,然后删除返回的项目:

delete treeWidget->takeTopLevelItem(index);

其中index是要删除的项目的索引。

函数takeChild仅与QTreeWidgetItem一起使用。 使用QtreeWidget,您可以使用QtreeWidget :: takeTopLevelItem(int index)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM