Проблема с расположением текста в верхнем левом углу контейнера в Flet может быть решена следующим образом:
1. Используйте `alignment=
ft.alignment.top _left` для контейнера, а не для текста внутри него.
2. Установите `expand=True` для колонки, чтобы она заполняла все доступное пространство.
3. Добавьте `padding=0` к контейнерам, чтобы убрать внутренние отступы.
4. Используйте `margin=ft.margin.only(left=0, top=0)` для точного позиционирования.
Вот исправленный код:
```python
elif selected_index == 2:
content.controls = [
ft.Column([
ft.Container(
content=ft.Text("Информация", size=32, weight=ft.FontWeight.BOLD),
alignment=
ft.alignment.top _left,
margin=ft.margin.only(left=0, top=0),
padding=0
),
ft.Container(
content=ft.Text("Текст", size=24),
alignment=
ft.alignment.top _left,
margin=ft.margin.only(left=0, top=0),
padding=0
)
], expand=True),
ft.ElevatedButton(
content=ft.Row([
ft.Image('assets/icons/telegram-icon.png', width=24, height=24),
ft.Text('Telegram')
])
)
]
```
Эти изменения должны помочь расположить текст в верхнем левом углу[2][5]. Если вам нужно дополнительно настроить расположение, вы можете:
- Использовать `ft.Stack` вместо `ft.Column` для более точного позиционирования элементов[7].
- Применить `ft.Container` с заданными размерами для ограничения области текста[3].
- Настроить `vertical_alignment` и `horizontal_alignment` страницы для общего выравнивания содержимого[5].
Помните, что в Flet виджеты по умолчанию подстраиваются под размер своего содержимого, поэтому важно правильно управлять размерами и выравниванием контейнеров[3].
[1]
https://flet.dev/docs/controls/container/ [2]
https://stackoverflow.com/questions/75965335/python-flet-cannot-align-text-to-center [3]
https://github.com/flet-dev/flet/issues/1223 [4]
https://stackoverflow.com/questions/76656285/python-flet-vertical-alignment-for-column-of-controls [5]
https://flet.dev/docs/reference/types/textalign [6]
https://flet.dev/blog/drag-and-drop-release/ [7]
https://flet.dev/docs/controls/text