所以我想按下项目的按钮时打印项目的文本。如何在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'(回复该人问我期望的按钮做什么) –