如何为列表中的每个项目创建一个 tkinter 标签?

How to create a tkinter label for every item in a list?

我希望 tkinter 为列表中的每个项目创建一个标签。问题:这个列表可以有不同的长度,因为它是基于用户输入的。

我设法为列表中的每个项目创建了一个变量。但是,如果我在编写程序时不知道每个变量的名称,我该如何访问每个变量(分配 Labelvar_name.grid() )?

keys = ["foo", "bar"]
count = 0

for key in keys:
    
    labelname = "label_w_" + str(key)
    globals()[labelname] = None

    # I can access the first variable created statically, but what about the others?
    label_w_foo = Label(window, text = key)
    label_w_foo.grid(row = count, column = 1)
    count += 1

window.update()

这是否回答了问题?

from tkinter import *
window =Tk()
keys = ["foo", "bar"]
count = 0
labels=[]
def change_text():
    for j,l in enumerate(labels):
        l.config(text=str(keys[j])+str(j))
for key in keys:
    # I can access the first variable created statically, but what about the others?
    labels.append(Label(window,text=key))
    labels[count].grid(row = count, column = 1)
    count += 1
print(labels)
Button(window,text="Change Text",command=change_text).grid(row=count, column=0)
window.mainloop()