(作爲「功課」標籤表示,這是計算機科學大項目的一部分。)Python和Tkinter的lambda函數
我寫一個危害!用tkinter模擬Python,我在使用按鈕中的lambda函數時遇到了一個很大的問題。假設root = Tk()
和categories
是一個列表。
# Variable to keep the buttons
root._buttons = {}
# Display headers on top of page
for i in range(5):
# Get category name for display in main window
name = categories[i]
b = Label(root, text=fill(name.upper(), 10), width=18, height=3,\
bg="darkblue", fg="white", font=("Helvetica bold", "", 11))
b.grid(row=0, column=i)
# Create list of buttons in that variable (root._buttons)
btnlist = [None]*5
# Display individual questions
for j in range(5):
# Make a button for the question
b = Button(root, text="$" + str(200 * (j+1)), width=8, height=1,
bg="darkblue", fg="orange", font=("Impact", "", 30))
b.cat = name
b.value = 200 * (j + 1)
b.sel = lambda: select(b.cat, b.value)
# Add callback event to button
print(b.cat, b.value, b.sel)
b.config(command=b.sel)
# Add button to window
b.grid(row=j+1, column=i)
# Append to list
btnlist[j] = b
root._buttons[categories[i]] = btnlist
對於所有的代碼,看到my little Code Viewer (under construction!)
這是在lambda: select(b.cat, b.value)
哪裏出了問題,似乎發生,因爲當我點擊板上的任何按鈕,它總是轉到最後一個按鈕董事會。我嘗試了其他方法,不幸的是全部使用lambda
,我還沒有看到任何不涉及lambda
的方法。
我一直停留在這個特別的問題3天了。即使我的老師也弄不清楚。非常感謝!! –