PyQt(Python+Qt)学习随笔:QTreeWidgetItem项的子项索引、删除子项的方法
树型部件QTreeWidget中的QTreeWidgetItem项:
-
获取子项索引
可通过indexOfChild(QTreeWidgetItem child)方法返回项下子项child的位置索引,索引值从0计数,如果child对应项未在当前项的子项中,则返回-1 -
removeChild删除子项
removeChild是根据子项对象从项中删除子项,调用方法为removeChild(QTreeWidgetItem child),操作是从项中删除child对应子项,注意该方法无返回,如果对应子项不存在也不报错。
注意:经老猿验证,PyQt没有精准验证child是否为当前项的子项,在部分验证情况下发现child不是当前项的子项也会被删除,以下为老猿的验证情况:
- child与当前项是兄弟节点
- child为当前项的父项(包括父项的父项…)
- child为当前项的父项的兄弟节点
- 如果child为当前项兄弟节点的子项则不会被删除。
- takeChild删除并返回子项
removeChild是根据子项对象从项中删除子项,但无返回,takeChild是根据子项的位置索引来删除子项,同时将删除的子项返回。调用方法为:
QTreeWidgetItem takeChild(int index)
如果执行失败,返回None。
- takeChildren删除所有子项
takeChildren()是将当前项的所有子项都删除,并将所有子项存储到一个列表中返回,如果当前项没有子项,则返回空列表。