我正在使用Tkinter制作音乐排序程序。我把我的数据组织成一个字典,其中键是艺术家,值是歌曲。我也已经成功地创建了一个列表框,其中艺术家作为不同的选择。
我无法弄清楚的部分是如何从艺术家列表框中进行选择,打开一个包含所有相关歌曲的新列表框(字典中的相关值)。 这就是我到目前为止所做的:
file = open("songs.txt")
music = createdict(file)
keys = sorted(music.keys())
values = music.values()
#Artist Option Listbox with Scrollbar
root = tk.Tk()
root.title("Artist Options")
scrollbar = Scrollbar(root, bg = "grey")
scrollbar.pack(side = RIGHT, fill = Y)
def cureselet(evt):
Lb1.see(ACTIVE)
item = Lb1.get(Lb1.curselection())
return item
Lb1 = Listbox(root, selectmode = SINGLE, font = ('times', 13), width = 50, height = 15, bd = 4, selectbackground = "yellow", bg = "grey")
Lb1.bind(curselet)
c = 0
for i in keys:
Lb1.insert(END,keys[c])
c+=1
Lb1.pack()
Lb1.config(yscrollcommand = scrollbar.set)
scrollbar.config(command = Lb1.yview)
Lb2 = Listbox(Lb1, selectmode = SINGLE, font = ('times', 13), width = 50, height = 15, bd = 4, selectbackground = "yellow", bg = "grey")
答案 0 :(得分:1)
让用户在准备好/选择某些内容后单击按钮。使用按钮回调执行一个将执行此操作的功能,使用另一个按钮关闭第二个列表框。
答案 1 :(得分:0)
我同意user2133443,但我想扩展他所说的内容。
你应该创建一个带有滚动条和一堆按钮的新框架。这些按钮中的每一个都作为选项菜单中的“选项”。您可以为每个按钮分配一个功能,用该艺术家的每首歌曲替换另一个滚动框架中的所有标签。
此外,我建议您在课堂上保留这些新对象,以便跟踪它们。
如果您需要任何帮助,请给我一个大喊。