Я запускаю скрипт с tkinter, который захватывает пользовательский ввод, а затем открывает второе и, возможно, третье окно на основе ввода. Проблема, с которой я сталкиваюсь, заключается в захвате ввода пользователя из третьего и последнего окна. Каждое окно разбивается на собственный класс python при выполнении.capture tkinter checkbox input
Вот код, который вызывает третье окно, который выполняет должным образом:
test_assign = TestAssign(mylist)
Вот третий код окна:
class TestAssign:
def __init__(self, mylist):
self.mylist = mylist
self.selected_values = []
self.master = Tk()
for i in range(len(mylist)):
setattr(self, 'item'+mylist[i], IntVar())
ch = Checkbutton(master, text='item'+mylist[i], variable=getattr(self, 'item'+mylist[i])
ch.pack()
b = Button(master, text='Next', command=self.get_selected_values)
b.pack()
mainloop()
def get_selected_values(self):
for i in range(len(self.mylist)):
if getattr(self, 'item'+self.mylist[i]) == 1:
self.selected_values.append(self.mylist[i])
self.master.destroy()
Затем управление возвращается к точке вызова (по крайней мере я верьте, что это делает). Где я пытаюсь напечатать выбранные значения:
test_assign = TestAssign(mylist)
while not test_assign.selected_values:
pass
print test_assign.selected_values
исполнения Everytime получает заявление для печати он печатает пустой список, есть ли ящики проверки или нет. Если я назову dir(test_assign)
для тестирования, у вас есть флажок attrs. Не знаю, почему я не могу это сделать.
Может ли кто-нибудь увидеть недостаток в моем коде?
лол ... спасибо !! Я попробую прямо сейчас и приму ваш ответ в мин. – ionalchemist