Textvararia中的Stringvar tkinter

时间:2018-02-15 16:37:20

标签: python

我正在尝试为用户创建多个输入但由于某种原因它没有获得变量,我似乎无法弄清楚如何执行此操作。

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(),但我不知道如何使用列表实现这一点,或者如果我在正确的轨道上设置它。

1 个答案:

答案 0 :(得分:0)

你似乎明白为什么它会输出它的作用,所以我不会解决这个问题。 要单独打印每个变量,您可以执行以下操作:

for var in v1list:
  print(var.get())

要将它们全部打印在1个列表中,您可以执行以下操作:

print([var.get() for var in v1list])

这使用list comprehension