
PYQT treeWidget获取选中节点及节点完整索引
treeWidget由于没有现成的函数直接获取选中节点的完整索引,因此只能自己造轮子。总体思路是通过parent方法获取递归获取父节点,直到找到顶层。
...
self.treeWidget.clicked.connect(self.binshow) # 单击信号链接到选中内容打印函数上
...
def binshow(self, index):
item = self.treeWidget.currentItem() # 获取选中节点
print(item.text(0))
# print(item.parent().text(0))
ret = self.getLocation(item) # 获取选中节点父节点
if ret:
bin_path = os.path.join(ret, item.text(0))
print(bin_path)
def getLocation(self, item):
if item.parent():
temp = item.parent().text(0)
parent = self.getLocation(item.parent()) # 递归获取上层节点,直到顶层
if parent:
res = os.path.join(parent, temp)
return res
else:
return temp # 最终返回节点索引
else:
return 0