Как закрыть приложение Flet на ПК с функцией предотвращения событийPython

Программы на Python
Ответить
Anonymous
 Как закрыть приложение Flet на ПК с функцией предотвращения событий

Сообщение Anonymous »

Я хочу закрыть запись приложения для ПК на Python с помощью платформы Flet, но также я хочу сохранить некоторые значения в файле json. Я написал on_close_event и установил page.window.prevent_close = True Сохранение работает отлично, как и ожидалось, но когда я закрываю приложение с помощью page.window.destroy(), я получаю кучу ошибок и чем приложение перестает работать по ошибке и закрывается. Я пробовал использовать os._exit(0) в конце on_close_event, но это помещало приложение в цикл закрытия и ухудшало ситуацию.
Ошибка:
Описание ошибки
Это переводится на английский: «Flet перестает работать и т. д.».
Я работаю в Windows 10, Python 3.12 и Flet 0.24.1
Не рабочий код:

Код: Выделить всё

    def on_close_event(e):
if e.data == "close":

un_tasks = dict()
i = 0
for tt in tab_download.tasks.controls:
if type(tt.value) == str:
un_tasks[i] = {"ttask": tt.ttask, "value": {"name": "", "path": ""}}
else:
un_tasks[i] = {"ttask": tt.ttask, "value": {"name": tt.value.name, "path": tt.value.path}}
i += 1

write_unfinished_tasks(un_tasks)
page.window.destroy()

page.window.prevent_close = True
page.window.on_event = lambda x: on_close_event(x)
Я просто хочу закрыть приложение Flet на ПК с помощью события закрытия.

Подробнее здесь: https://stackoverflow.com/questions/790 ... vent-event
Гость
 Re: Как закрыть приложение Flet на ПК с функцией предотвращения событий

Сообщение Гость »

У меня похожая проблема с закрытием приложения на версии `flet==0.28.3`, но в моем случае `prevent_close=True` делал закрытие приложения очень долгим, даже если в методе было только `page.window.destroy()`
Проблема решилась следующим способом:
```python
page.on_disconnect = on_disconnect # нужна именно корутина

async def on_disconnect(e):
# ваш код, который будет вызвать уже после закрытия окна flet
```
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»