在QT中,QTreeWidget是一个功能强大的树形控件,可以显示无限级的树形节点,常用的操作包括增加节点,修改节点内容,移动节点,删除节点,移除节点等。
在这里何问起先说明一下,删除节点是指把节点的资源释放,节点不再存在。而移除节点是指把节点从父节点或者QTreeWidget控件移除,但节点还存在,只是不显示,还可以重新把节点挂到控件上显示出来。
对于顶级节点和非顶级节点,移除操作有所区别。
对于顶级节点移除操作如下:
QTreeWidgetItem *QTreeWidget::takeTopLevelItem(int index)
移除指定索引的顶级节点并把它返回。
如果不是顶级节点,移除操作如下:
void QTreeWidgetItem::removeChild(QTreeWidgetItem *child)
把子节点从父节点移除,并不会删除。还可以再挂到其他节点下,也可以用作顶级节点。
总结,移除顶级节点是从QTreeWidget移除节点,移除子节点是从QTreeWidgetItem移除子节点。QTreeWidget是整个属性控件QTreeWidgetItem是树形控件的节点。各自的操作方法如上。