Ошибка при запуске приложения flet

Запускаю код, и выходит ошибка:

Exception in thread Thread-7 (info):
Traceback (most recent call last):
  File "D:\Python310\lib\threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "D:\Python310\lib\threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Admin\desktop\jangame\main.py", line 14, in info
    page.add(
  File "D:\Python310\lib\site-packages\flet_core\page.py", line 315, in add
    r = self.__update(self)
  File "D:\Python310\lib\site-packages\flet_core\page.py", line 431, in __update
    commands, added_controls, removed_controls = self.__prepare_update(*controls)
  File "D:\Python310\lib\site-packages\flet_core\page.py", line 456, in __prepare_update
    control.build_update_commands(
  File "D:\Python310\lib\site-packages\flet_core\control.py", line 411, in build_update_commands
    ctrl.build_update_commands(
  File "D:\Python310\lib\site-packages\flet_core\control.py", line 423, in build_update_commands
    innerCmds = ctrl._build_add_commands(
  File "D:\Python310\lib\site-packages\flet_core\control.py", line 469, in _build_add_commands
    command = self._build_command(False)
  File "D:\Python310\lib\site-packages\flet_core\control.py", line 496, in _build_command
    self._before_build_command()
  File "D:\Python310\lib\site-packages\flet_core\container.py", line 210, in _before_build_command
    self._set_attr_json("alignment", self.__alignment)
  File "D:\Python310\lib\site-packages\flet_core\control.py", line 144, in _set_attr_json
    nv = self._convert_attr_json(value)
  File "D:\Python310\lib\site-packages\flet_core\control.py", line 150, in _convert_attr_json
    json.dumps(value, cls=EmbedJsonEncoder, separators=(",", ":"))
  File "D:\Python310\lib\json\__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "D:\Python310\lib\site-packages\flet_core\embed_json_encoder.py", line 43, in encode
    return super().encode(self._convert_enums(o))
  File "D:\Python310\lib\json\encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "D:\Python310\lib\json\encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "D:\Python310\lib\site-packages\flet_core\embed_json_encoder.py", line 40, in default
    return self._convert_enums(obj.__dict__)
AttributeError: 'mappingproxy' object has no attribute '__dict__'. Did you mean: '__dir__'?

Код:

from flet import *

button_style = ButtonStyle(shape=RoundedRectangleBorder(radius=10))
center = MainAxisAlignment.CENTER

def main(page: Page):
    page.title = 'App'
    page.vertical_alignment = center
    page.horizontal_alignment = center
    page.window_width = 400
    page.window_height = 700

    def info(e):
        page.add( #ошибка здесь
            Container(Column(
                [
                    Text(value='Информация не добавлена', size=30),
                    Container(Column([ElevatedButton(text='Назад', scale=2, height=40, width=150, style=button_style)]),alignment=alignment.bottom_right)
                ]), alignment=center))

    def start(e=None):
        #код "start"
    if page.route == '/':
        info() #для отладки сделал сразу info, а не start
    page.update()


app(target=main)

Пробовал добавлять табуляции, переводить на новую строку, убирать части из контейнера, но не помогает. Единственное спасение - полностью удалить весь код из info. В чем проблема?


Ответы (1 шт):

Автор решения: GrandKing

Вместо alignment=center напиши alignment = alignment.center.

→ Ссылка