访问使用 for 循环创建的 Entry 小部件

Guy*_*. D 1 python tkinter

使用以下代码创建了一个条目数组

from tkinter import *
root = Tk()

height = 5
width = 5

delta=0

for i in range(height): #Rows
  for j in range(width): #Columns
    b = Entry(root, text="",width=8)
    b.grid(row=i, column=j)

mainloop()
Run Code Online (Sandbox Code Playgroud)

如何访问每个条目以更新其值(例如,使用 StringVar)?

Rol*_*ith 5

您可以为您的Entry小部件创建一个列表列表。

from tkinter import *
root = Tk()

height = 5
width = 5

delta=0

entries = []

for i in range(height): #Rows
  newrow = []
  for j in range(width): #Columns
    b = Entry(root, text="",width=8)
    b.grid(row=i, column=j)
    newrow.append(b)
  entries.append(newrow)

mainloop()
Run Code Online (Sandbox Code Playgroud)

然后,您可以将单个条目作为例如entries[2][4].

编辑:要编辑条目小部件的文本e,先使用e.delete(0, END)清除它,然后使用e.insert(0, "new text")插入新文本。

Edit2:或者,您可以将 StringVars 存储在列表列表中,而不是小部件...

  • 您不一定*需要* stringvars。您可以编辑“条目”小部件的内容,如更新后的答案所示。 (2认同)