所以我想按下項目的按鈕時打印項目的文本。如何在for循環中正確地創建Tkinter按鈕?
from tkinter import *
from tkinter import ttk
root = Tk()
root.title('test')
mainframe = ttk.Frame(root, padding='8')
mainframe.grid(column=0, row=0)
items = [
{
'name' : '0001',
'text' : '1111',
},{
'name' : '0002',
'text' : '2222',
},{
'name' : '0003',
'text' : '3333',
},
]
rcount = 1 #row count
for item in items:
ttk.Label(mainframe, text=item['name']).grid(column=1, row=rcount, sticky=W)
ttk.Button(mainframe, text='->', command=lambda:print(item['text'])).grid(column=2, row=rcount, sticky=W)
rcount += 1
root.mainloop()
無論按下哪三個按鈕,我都會得到3333
。如果我刪除lambda,我在程序開始時獲得1111 2222 3333
,但這時按鈕沒有任何作用。
例如,如果我按下按鈕3,2,1,2,3,我希望看到'3333 2222 1111 2222 3333'。相反,我得到'3333 3333 3333 3333 3333'(回覆該人問我期望的按鈕做什麼) –