我正在练习tkinter,但遇到了问题。
我需要在for循环中创建一些按钮,并根据循环的迭代向其发出命令。
但是无论我按下什么按钮,输出始终为“ d”。 这是一个简化的版本:
from tkinter import *
root = Tk()
def write(n):
print(n)
indexes = ['a','b','c','d']
for i in range(len(indexes)):
button = Button(root, text=indexes[i], command=lambda:write(indexes[i]))
button.grid(row=0, column=i)
root.mainloop()
有人知道该怎么做吗?谢谢
答案 0 :(得分:1)
尝试以下代码:
from tkinter import *
root = Tk()
def write(n):
print(n)
indexes = ['a','b','c','d']
for i in range(len(indexes)):
button = Button(root, text=indexes[i], command = lambda i=i:write(indexes[i]))
button.grid(row=0, column=i)
root.mainloop()