Tkinter 仅附加最后一个元素

Tkinter only appending last element

我对 tkinter 没有经验,一直在寻找这个问题的解决方案。

page1 用户输入整数的这一部分,用于通过按钮在另一个页面上生成输入框:

# Towers
lbl_gt = Label(top, text="How many towers?", fg='black', font=("Helvetica", 10))
lbl_gt.place(x=420, y=280)

gt = Entry(top, width=20)
gt.focus_set()
gt.place(x=420, y=300)

第 2 页上有 Entry 个框,用户可以在其中键入一个数字。我希望能够单击此页面上的 OK 按钮并打印在 Entry 框中键入的数字。到目前为止,当我单击 OK 时,它只打印列表中的最后一个元素。例如,当我输入 1 然后 2 时,它只打印 ['2']。我想让它打印 ['1', '2'].

这是第 2 页:

def gt_geo():
    top = Toplevel()
    top.title("Guard Tower Geos")
    top.geometry("200x400")

    num_gt = int(gt.get())
    GEOs = []
    for i in range(num_gt):
        gt_geo = Entry(top, width=20)
        gt_geo.focus_set()
        gt_geo.pack(side=TOP, pady=6)

    def ok():
        GEOs.append(gt_geo.get())
        print(GEOs)

    button = Button(top, text="OK", command=ok)
    button.place(x=20, y=300)

    top.mainloop()

gt_button = Button(top, text="Enter GT GEOs", command=gt_geo)
gt_button.place(x=550, y=300)

感谢您的评论。这有效:

        for i in range(num_gt):
        gt_geo = Entry(top, width=20)
        gt_geo.focus_set()
        gt_geo.pack(side=TOP, pady=6)
        GEOs.append(gt_geo)

    def ok():
        GEOs2 = []
        **for j in GEOs:
            GEOs2.append(j.get())**
        print(GEOs2)