我有一些代码可以根据树视图中选择的项目更改输入字段中显示的文本。我把事件绑定到左键和上下箭头键,它有点工作。问题是当前所选树中的项目不是输入字段中显示的值。如果有三个(5,7,4)值并且选择了值为4的项目,则输入字段将显示值为7的项目。它总是一次性的。我不想问这个问题,因为我觉得答案很简单,但我真的很茫然。这是我的代码。
# create GUI items to populate frames
self.create_menu()
self.create_edit_display()
self.albumDisplay = Label(self.editFrame)
self.create_import_display()
self.tree.bind("<BackSpace>", self.delete_insert)
self.tree.bind("<Button-1>", self.update_editFrame)
self.tree.bind("<Up>", self.update_editFrame)
self.tree.bind("<Down>", self.update_editFrame)
# selected track can be removed
def delete_insert(self, event):
self.tree.delete(self.tree.focus())
def update_editFrame(self, event):
trackInfo = self.tree.item(self.tree.focus())
print(trackInfo)
if self.tree.focus():
trackInfo = self.tree.item(self.tree.focus())
self.trackNumberEntry.delete(0, END)
#self.trackNumberEntry.insert(0, random.choice([1,2,3,4,5,6,7]))
self.trackNumberEntry.insert(0, trackInfo['values'][0])
else:
self.tree.focus_get()
通过我的调试,我注意到每次第一次点击树形视图时,我都会得到类似的东西。
{'tags': '', 'text': '', 'values': '', 'image': '', 'open': 0}
{'tags': '', 'text': 'IMPORT# 2', 'values': [6, 'Supersymmetry', '', 'Arcade Fire', 'Arcade Fire', 'Reflektor', '', '', 2013, '00:11:16', '', '', 'arcade_fire_reflektor_06_supersymmetry_.mp3', 'arcade_fire_reflektor.jpg', ''], 'image': '', 'open': 0}
这是初次调用,搞乱了订单。在确定“价值”的价值之前,我不确定为什么会这样做。