tkinter按钮没有提供正确的参数

时间:2020-01-19 16:23:07

标签: python tkinter

我正在练习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()

有人知道该怎么做吗?谢谢

1 个答案:

答案 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()
相关问题