В Tkinter исправить функцию добавления элемента списка
Пишу небольшое игровое приложение, используя библиотеку Tkinter в языке Python. Среди прочего функционала есть такой: имеется область ввода, куда пользователь печатает текст, и тот должен пополнять собой имеющийся список текстовых элементов. Эти телодвижения можно рассматривать как своего рода "обучение" системы в ручном режиме.
При нажатии кнопки "включается" функция - обработчик этого события. Однако на данном этапе при попытке использовать функцию получаю ошибку памяти - в чем причина?
# функция "обучения" шара
def train_sphere(event):
responses = ['Да', 'Нет', 'Скорее всего да', 'Скорее всего нет', 'Возможно', 'Имеются перспективы', 'Вопрос задан неверно']
new_res = text_box_train.get('1.0', tk.END)
while new_res:
responses.append(new_res)
time.sleep(2)
text_box_answer.insert(tk.END, 'Новый вариант ответа добавлен в программу. Можешь добавить еще или сделать это потом' + '\n')
# привязываем команду "обучения" шара к кнопке
button_train.bind('<Button>', train_sphere)
Ответы (1 шт):
Кажется, появился ответ. Видимо, цикл while здесь лишний. Без него приложение работает.
Только еще вопрос: а список в таком случае пополняется в рамках текущей сессии, и придет в исходное состояние после закрытия окна приложения, или же изменения носят глобальный характер, и сохранятся далее? Мне бы хотелось иметь обновление списка, который сохраняет в себе эти изменения вне зависимости, закрыл ли юсер окно приложения или нет