我正在创建一个应用程序,单击一个按钮可以在其中创建更多条目。我成功完成了任务,但是问题是,我想收集在这些多个条目中输入的数据,然后我意识到它们没有可用来调用的变量名。如何创建这些条目并在其他功能中使用它们?代码太多,无法粘贴到这里。
self.window_w = 1400
self.window_h = 600
self.button_x = 80
self.button_oddx = 460
self.button_y = 110
self.counter = 0
def moving_But(self):
self.all_ent = []
self.all_entry = []
if (self.button_y < self.window_h - 50):
self.counter +=1
self.button_y = self.button_y + 40
self.b.place_forget()
self.b.place(x=self.button_x, y=self.button_y+30)
self.entrybox = Entry(self, width=10).place(x=10,
y=self.button_y-20)
self.entrybox2 = Entry(self, width=10).place(x=100,
y=self.button_y-20)
self.vs = Label(self, text='vs', font=('Lucida Calligraphy', '15',
'bold'), fg='#773c00', bd=5,
bg='#c9e3c1').place(x=60, y=self.button_y-25)
self.WinEnt1= Entry(self, width=6)
self.DrawEnt1 = Entry(self, width=6)
self.LoseEnt1= Entry(self, width=6)
self.OthersEnt1 = Entry(self, width=6)
self.WinEnt1.place(x=310, y=130)
self.DrawEnt1.place(x=360, y=130)
self.LoseEnt1.place(x=410, y=130)
self.OthersEnt1.place(x=460, y=130)
if self.counter == 2:
self.all_ent.append(Entry(self, width=6))
self.all_ent.append(Entry(self, width=6))
self.all_ent.append(Entry(self, width=6))
self.all_ent.append(Entry(self, width=6))
self.all_ent[0].place(x=310, y=self.button_y -20)
self.all_ent[1].place(x=360, y=self.button_y - 20)
self.all_ent[2].place(x=410, y=self.button_y - 20)
self.all_ent[3].place(x=460, y=self.button_y - 20)
elif self.counter == 3:
self.all_ent.append(Entry(self, width=6))
self.all_ent.append(Entry(self, width=6))
self.all_ent.append(Entry(self, width=6))
self.all_ent.append(Entry(self, width=6))
self.all_ent[4].place(x=310, y=self.button_y - 20)
self.all_ent[5].place(x=360, y=self.button_y - 20)
self.all_ent[6].place(x=410, y=self.button_y - 20)
self.all_ent[7].place(x=460, y=self.button_y - 20)
答案 0 :(得分:0)
您可以将每个条目与文本变量相关联,并将它们存储在列表中。我已经提供了该机制的示例。
from tkinter import *
root = Tk()
root.geometry('300x200')
entry_list = [] # List to hold all textvariables corresponding to entrys
def new_entry():
print('Creating entry no.', len(entry_list)) # Log creation to console
v = StringVar() # Create new textvariable
e = Entry(root, textvariable=v)
e.pack(pady=(10,0))
entry_list.append(v) # Append textvariable to list
Button(root, text='New entry', command=new_entry).pack(pady=(10,0))
root.mainloop()