gpt4 book ai didi

python - 如何向 wx.TreeCtrl 项目添加额外的数据? wxpython

转载 作者:太空宇宙 更新时间:2023-11-04 01:33:25 24 4
gpt4 key购买 nike

如何向下面名为 fileTreewx.TreeCtrl 中的附加树项添加额外数据。我将文本文件中的数据读入数组以构建树。树中的附加项是图像的文件名,但我想知道如何将完整的文件路径添加到每个项目。当我在一个项目上加倍时,必须显示完整的文件路径,而不仅仅是它的文件名。

def __init__(self, *args, **kwds):

self.fileTree = wx.TreeCtrl(self, size=(200, 100))
self.root = self.fileTree.AddRoot('Images')
self.allImages = self.fileTree.AppendItem(self.root, 'All')
imgLst=self.generateList(imagelist)# Reads a text file with filepaths into list

for item in imgLst:
tmp=item
tmp = tmp[tmp.rfind("\\")+1:tmp.rfind(".")]
self.fileTree.AppendItem(self.allImages, tmp)

self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.onTreeDClick, self.fileTree)

def onTreeDClick(self,event):
print 'Double clicked on', self.fileTree.GetItemText(event.GetItem())

def generateList(self, fname):
f = open(fname, "rb")

a=[]
for line in f:
a.append(line.strip())
return a

最佳答案

wx.TreeCtrl内您可以拥有带有一些相关数据的项目。此数据是一个 wx.TreeItemData 类实例,可以包含任意 Python 对象。让我们用一段代码来阐明这一点:

# Let fullPath be holding full path you your file (i.e. in Python string)
fileInfo = wx.TreeItemData(fullPath)

wx.TreeItemDatafileInfo 实例对象可以与任意 wx.TreeCtrl 项目相关联:

# Let item variable contain your tree item object
self.fileTree.SetPyData(item, fileInfo)

这里,在上面的代码中,我们将 item 对象与 fileInfo 对象相关联。您可以访问事件处理程序中的关联对象:

self.fileTree.GetPyData(event.GetItem())

就是这样。请注意,任何 Python 对象都可以与 wx.TreeCtrl 项相关联。

关于python - 如何向 wx.TreeCtrl 项目添加额外的数据? wxpython,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12069040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com