如何从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)
相关文章:
- 如何将字符串属性设置为 QTreeWidgetItem?
- QTreeWidgetItem 设置不可选择将清除选择
- 如何获得QTreeWidgetItem中QComboBox索引更改的通知?
- SegFault deleting QTreeWidgetItem
- QTreeWidgetItem 突出显示文本问题
- QTreeWidgetItem 析构函数和 QTreeWidgetItemIterator 有效性
- QTreeWidget 可以跳转到特定行(由 QTreeWidgetItem 或列指定)吗?
- 将 QTreeWidgetItem 的项放入变量中
- QTreeWidgetItem 通过文本查找子项
- Qt - QTreeWidgetItem 未被编辑
- Selection of QTreeWidgetItem
- QTreeWidgetItem更改-检测输入/ESC
- 如何将itemExpanded与QTreeWidgetItem的子类一起使用
- QTreeWidgetItem使用键盘多选
- QTreeWidgetItem 可编辑仅允许输入数字
- 如何在输入新值后获取 qtreewidgetitem 的新值
- QTreeWidgetItem 没有 new 作为成员
- 再次从QTreeWidget获取QTreeWidgetItem列表
- 重新定义 QTreeWidgetItem::operator<
- 是否可以在切换QTreeWidgetItem复选框时创建一个信号