Tkinter小部件绑定调用函数不正确

2024-10-04 05:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

对于下面的代码,我创建了三个条目,最初分别显示[0]、[1]、[2]、[3]。如果我在每个条目上按“回车”,控制台应该打印0,1,2,3。但是,所有小部件都打印3。有什么问题

import tkinter as tk

root = tk.Tk()

def show(entryVar):
    print(entryVar.get())

rootEntry = [0 for x in range(4)]
rootEntryvar = [tk.IntVar(value = x) for x in range(4)]
for i in range(4):
    rootEntry[i] = tk.Entry(root, textvariable = rootEntryvar[i], width = 5)
    rootEntry[i].grid(row = 0, column = i)

for i in range(4):
    rootEntry[i].bind('<Return>', lambda a: show(rootEntryvar[i]))

root.mainloop()

Tags: 代码inimportfor部件tkinterasshow