如何为列表中的每个项目创建一个 tkinter 标签?
How to create a tkinter label for every item in a list?
我希望 tkinter 为列表中的每个项目创建一个标签。问题:这个列表可以有不同的长度,因为它是基于用户输入的。
我设法为列表中的每个项目创建了一个变量。但是,如果我在编写程序时不知道每个变量的名称,我该如何访问每个变量(分配 Label
和 var_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()
我希望 tkinter 为列表中的每个项目创建一个标签。问题:这个列表可以有不同的长度,因为它是基于用户输入的。
我设法为列表中的每个项目创建了一个变量。但是,如果我在编写程序时不知道每个变量的名称,我该如何访问每个变量(分配 Label
和 var_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()