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

選択したインデックスを 1 回だけ取得します。

activeIndex = categoryListbox.index('active')

今後のすべての選択は、このインデックスを参照します。古いインデックスを参照する代わりに、現在選択されているインデックスを取得するようにラムダを変更できます。

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