路径项可以说我有这个TREECTRL:获取上TREECTRL
Root
Dogs
Pug
Lab
Birds
Parrot
Eagle
我怎样才能得到一个路径哈巴狗项目?
EX:我应该得到的东西一样,
["root","Dogs","Pug"]
(但使用TreeCtrlIds)
是否有一个功能类似,
getTreePath(Item)
?
路径项可以说我有这个TREECTRL:获取上TREECTRL
Root
Dogs
Pug
Lab
Birds
Parrot
Eagle
我怎样才能得到一个路径哈巴狗项目?
EX:我应该得到的东西一样,
["root","Dogs","Pug"]
(但使用TreeCtrlIds)
是否有一个功能类似,
getTreePath(Item)
?
我也使用迭代方法,但是从当前选择的项目开始。它看起来像这样:
pieces = []
item = self.tree.GetSelection()
while self.tree.GetItemParent(item):
piece = self.tree.GetItemText(item)
pieces.insert(0, piece)
item = self.tree.GetItemParent(item)
您可以反复拨打GetItemParent(item)
从该项目获得的根节点如下(来源:TreeCtrl api):
root = myTree.GetRootItem()
pathList = [item]
done = False
while not done:
path = myTree.GetItemParent(item)
pathList.append(path)
if path==root:
done=True
注意这会给你在你需要的顺序相反的项目,使用pathList.reverse()
来解决这个问题。
编辑:
pathList.append(path)
,您可以使用pathList.insert(0, path)
避免倒车列表。GetItemText()
而不是整个对象附加每个项目的文本。如果您使用'pathList.insert(0,path)',则可以避免需要反转路径列表。否则,这是一个合理的方法。 – 2012-07-12 17:37:16
谢谢,补充说,在 – Dhara 2012-07-12 17:40:04
我希望不要这样做,但它很好。谢谢 – user1513192 2012-07-12 17:57:41