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)
我对 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)