我正在尝试制作一个软件,但是问题是当我单击下面代码中的按钮时,它总是显示9作为输出。谁能建议解决方案。
from tkinter import *
root = Tk()
frame = Frame(root)
def click(i):
print(i)
for i in range(10):
btn = Button(frame,text="Button",command=lambda: click(i))
btn.pack(...)
root.mainloop()
您需要使用部分对象:
from functools import partial
for i in range(10):
btn = Button(frame,text="Button",command=partial(click, i))
或lambda函数的默认值:
for i in range(10):
btn = Button(frame,text="Button",command=lambda i=i: click(i))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句