@mrdrkot

Python 3 kivy. Как сохранить состояние программы?

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

Пробовал pickle, в том числе с highProtocol ,пишет no default __reduce__ due to non-trivial __cinit__

Есть ли способ быстро записать в файл состояние рут- виджета и всех его детей, а затем также легко из этого файла создать рут-виджет в сохраненном состоянии?

Заранее благодарен!
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Посмотри на вопрос с другой стороны.
Состояние виджетов наверняка определяется чем-то другим - состоянием приложения, которое описывается в терминах той предметной области, с которой ты имеешь дело.
Опиши состояние приложения как класс, научись сохранять/загружать его без привязки к GUI.
Потом научись создавать GUI на основании экземпляра этого класса.
А потом меняй экземпляр этого класса при операциях с GUI.
Почитай про паттерн Model-View-Intent, он примерно про это.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы