0

这是一个正在给我麻烦的应用程序的一部分:当我单击“选择类别”时,选择“奶酪”时应该输出1,但它总是输出0。我知道我应该将其组织为一个对象,但我想将“类别”视为主要 Tkinter 对象的属性。我是 python 和 Tkinter 的新手,不知道如何访问属性。谢谢。

import Tkinter

root = Tkinter.Tk()
root.title('Test App')
mainFrame = Tkinter.Frame(root)

def mainWindow():
    categories = [['Bread','Rye','Wheat'],['Cheese','Feta']]

    categoryListbox = Tkinter.Listbox()
    for category in categories:
            categoryListbox.insert('end', category[0])
    categoryListbox.pack()

    activeIndex = categoryListbox.index('active')

    selectCategoryButton = Tkinter.Button(text="Select Category", command= lambda: selectCategory(activeIndex))
    selectCategoryButton.pack()

def selectCategory(activeIndex):
    print activeIndex


root.mainloop()
4

1 回答 1

1

您只检索一次选定的索引:

activeIndex = categoryListbox.index('active')

所有未来的选择都参考这个指数。您可以更改您的 lambda,以便它检索当前选定的索引而不是引用旧索引:

selectCategoryButton = Tkinter.Button(text="Select Category", command= lambda: selectCategory(categoryListbox.index('active')))
于 2012-10-31T05:54:39.450 回答