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



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

我设法为列表中的每一项创建了一个变量。但是,如果在编写程序时不知道每个变量的名称,我如何访问它(分配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()

最新更新