1

我正在使用 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")
4

2 回答 2

1

让用户在准备好/选择某些内容后单击按钮。使用按钮回调执行将执行此操作的函数,并使用另一个按钮关闭第二个列表框。

于 2013-08-08T22:14:18.843 回答
0

我同意 user2133443,但我想扩展他所说的话。

您应该创建一个带有滚动条和一堆向下按钮的新框架。Each of these buttons act as an 'option' in the option menu. 您可以为这些按钮中的每一个分配一个功能,用该艺术家的每首歌曲替换旁边另一个滚动框架中的所有标签。

此外,我建议将您正在制作的这些新对象保留在课堂上,以便轻松跟踪它们。

如果您需要任何帮助,请大声告诉我。

于 2013-08-09T00:45:24.980 回答