![](/img/trans.png)
[英]How do I invoke a SLOT on expansion QTreeWidgetItem and not QTreeWidget?
[英]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.