我正在尝试为用户创建多个输入,但是由于某种原因,它没有得到变量,我似乎无法弄清楚如何做到这一点。
def Updata():
for r in range(1,5):
v1list.append(StringVar())
NameEntry = Entry(root, textvariable=v1list[r-1], bg = bg, fg = fg, font = font, width=20).grid(row = r, column = 0, sticky=W)
def GetData():
print(v1list)
此脚本的输出是:
[<tkinter.StringVar object at 0x05B6C550>, <tkinter.StringVar object at 0x05B6C630>, <tkinter.StringVar object at 0x05B6C690>, <tkinter.StringVar object at 0x05B6C710>]
它应该可读文本,因为我试图获取他们手动输入程序的某人的名称和年龄。
我知道您通常必须做.get()
,但是我不知道如何使用列表实现此内容,或者如果我在正确的轨道上进行设置。
您似乎明白了为什么它输出它的作用,因此我不会解决这个问题。要单独打印每个变量,您可以执行:
for var in v1list:
print(var.get())
要将它们全部打印在1列表中,您可以做:
print([var.get() for var in v1list])
这使用列表理解。