我在使用for循环创建的Tkinter GUI中有20个条目(将来可能会有更多条目,我真的不希望只有50行代码用于定义条目)。我需要收集条目值以创建一个numpy数组。作为一个黑暗中的镜头,我试过这个:
master = Tk()
R=StringVar()
namR = []
for ii in range(0,20):
namR.append(Entry(master), textvariable=R[ii])
namR[ii].grid(row=2+ii, column=3)
显然不起作用(StringVar instance has no attribute '__getitem__'
),但我认为目标很明确。
有什么建议让这项工作好吗?
答案 0 :(得分:4)
您应该在textvariable
来电中加入Entry()
,而不是append(Entry(master, textvariable=xyz))
而不是append(Entry(master), textvariable=xyz)
。 append()
不知道如何处理第二个参数。接下来,您可以为list
对象创建StringVar
,并使用类似Entry(master, stringvariable=svars[ii])
的内容来引用它们。但是,只有在您想要执行变量跟踪等操作时才需要这样做。如果您只想检索条目对象中的文本,可以使用my_entry.get()
。
master = Tk()
namR = []
for ii in range(0,20):
namR.append(Entry(master))
namR[ii].grid(row=2+ii, column=3)
[e.get() for e in namR]
将是所有条目内容的list
。