这是一个给我带来麻烦的应用程序的一部分:当我点击“选择类别”时,当选择“奶酪”时它应该输出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()
答案 0 :(得分:1)
您只需检索一次所选索引:
activeIndex = categoryListbox.index('active')
所有未来的选择都会参考此索引。您可以更改lambda,以便检索当前选定的索引,而不是引用旧索引:
selectCategoryButton = Tkinter.Button(text="Select Category", command= lambda: selectCategory(categoryListbox.index('active')))