我的用户界面中有两个列表框,pbs
和f
,一个在另一个旁边。在pbs
中,我列出了一些与多个文件名相关联的问题。我希望在单击pbs
中的一个问题时,相应的文件列表将显示在f
中。到目前为止,我已经设置了从pbs
获取所选选项的索引,并且在第一次单击后文件显示正确,但是几次单击后,显示的文件来自其他问题,而不是选定的文件。
此外,我不确定我是否正确存储索引。我尝试了两个选项:
这些是问题和文件(作为字典和列表):
problems = {
'pb_1':['1.txt','2.txt','3.txt'],
'pb_a':['a_1.txt','a_2.txt','a_3.txt']
}
problems=['pb_1','pb_a']
files=[['1.txt','2.txt','3.txt'],['a_1.txt','a_2.txt','a_3.txt']]
这是代码:
def immd(e):
for i in problems[pbs.get('active')]:
f.insert(END,i)
root = Tk()
root.title('Title')
frame2 = Frame(root)
frame2.pack(side=RIGHT)
l3 = Label(frame2, text='Problems:').grid(row=0,column=0)
pbs = Listbox(frame2, height=10)
pbs.grid(row=1,column=0)
for i in problems:
pbs.insert(END,i)
pbs.bind('<<ListboxSelect>>',immd)
l4 = Label(frame2, text='Files:').grid(row=0,column=1)
f = Listbox(frame2, height=10)
f.grid(row=1,column=1)
root.mainloop()
答案 0 :(得分:2)
使用Listbox.curselection
,您可以获得所选项目的指标。 indices是一个字符串列表;你应该将字符串转换为整数。
def immd(e):
indice = pbs.curselection()
index = int(indice[0])
....