создание четырех записей нажатием кнопки, а также добавление их в список - PullRequest
0 голосов
/ 01 января 2019

Я создаю приложение, в котором я могу создать больше записей, нажав кнопку.Я успешно это сделал, но проблема в том, что я хочу собрать данные, введенные в эти множественные записи, затем я понял, что у них нет имен переменных, с которыми я могу их вызывать.Как мне создать эти записи и использовать их в другой функции?Код слишком много, чтобы вставить его сюда.

    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)

1 Ответ

0 голосов
/ 02 января 2019

Вы можете связать каждую запись с текстовой переменной и сохранить их в списке.Я включил пример механизма.

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...