сохранение значений из ввода созданных полей ввода в Tkinter - PullRequest
0 голосов
/ 10 мая 2018

Так что я довольно новичок в Tkinter, но я немного посмотрел и не нашел информации об этом.В частности, я хочу создать кнопку, которая создает поля ввода, а затем сохранить эти поля ввода в какую-то переменную.Я не могу найти способ связать новые виджеты с переменной, когда я создаю их с помощью кнопки или другого пользовательского ввода.Например:

def new_category(self):
    print (rownum)
    new = Toplevel()
    new.title("New System")
    add_ablilty = Button(new, text="Add Ablity", command=lambda: self.new_entry(new))
    add_ablilty.pack()

def new_entry(self, window):
    Entry(window).pack()

1 Ответ

0 голосов
/ 10 мая 2018

Этот код назначит StringVar экземпляров каждому Entry, а затем печатает их каждый раз, когда вы добавляете новую запись, добавляя их в список.

def new_category(self):
    new = Toplevel()
    new.title("New System")
    vals=[]
    self.varlists.append(vals)
    index=len(self.varlists)-1
    add_ablilty = Button(new, text="Add Ablity", command=lambda: self.new_entry(new, index))
    add_ablilty.pack()
def new_entry(self, window, index):
    print(list((i.get()) for i in self.varlists[index]))
    var=StringVar()
    self.varlists[index].append(var)
    Entry(window, textvariable=var).pack()

Добавьте следующую строку в функцию __init__ любого класса:

self.varlists=[]
...