Найти - Пользователи
Полная версия: Flet framework. Bugs or my inexperience
Начало » Python для новичков » Flet framework. Bugs or my inexperience
1 2
Alitalia60
Привет все. Я новичок. Изучаю flet и вот в тупике. Есть 2 случая:

1. Windows 10: не работает должным образом свойство expand
https://flet.dev/docs/controls/column#expanding-children

приведенный в документации пример не работает.
 def test(page: ft.Page):
    page.window_height=400
    r = ft.Container(
        content=
        ft.Column([
            ft.Container(bgcolor='yellow', content=ft.Text("Header"), expand=1),
            ft.Container(bgcolor='yellow', content=ft.Text("Body"), expand=2),
            ft.Container(bgcolor='yellow', content=ft.Text("Footer"), expand=1)
        ]),
        border=ft.border.all(3))
    page.add(r)
    page.add(ft.Column([
        ft.Container(expand=True, content=ft.Text("Here is search results")),
        ft.Text("Records found: 10")
    ]))
    page.update()

После запуска вижу в окне только text “Header”
Куда копать, дайте ссылку на ветку, возможно уже обсуждалось

2. Linux / Ubuntu - не могу зафиксировать размеры главного окна, например
 page.window_width = 400
page.window_height = 400

получаю ошибку, которой в Windows нет - там все отрабатывает
ZerG
Уберите для теста
  page.add(ft.Column([
        ft.Container(expand=True, content=ft.Text("Here is search results")),
        ft.Text("Records found: 10")
    ]))

Ну а вобще с таким вопросом на форум флета надо бы - тут явно не в питоне вопрос
Alitalia60
ZerG
Уберите для теста
Изначально не было в тесте, результат тот же

Пытаюсь найти форум по Flet - что-то есть на английском. Наверное непопулярен, а жаль
ZerG
Ну у вас в примере какая то угадайка нарисована

Давайте сначала без гениального кода попробуем
 import flexx as ft
def test(page: ft.Page):
    page.window_height = 400
    # Header container with expand=1
    header_container = ft.Container(bgcolor='yellow', content=ft.Text("Header"), expand=1)
    # Body container with expand=2
    body_container = ft.Container(bgcolor='lightblue', content=ft.Text("Body"), expand=2)
    # Footer container with expand=1
    footer_container = ft.Container(bgcolor='lightgreen', content=ft.Text("Footer"), expand=1)
    # Column container with header, body, and footer containers
    column_container = ft.Column([header_container, body_container, footer_container])
    # Border around the column container
    r = ft.Container(content=column_container, border=ft.border.all(3))
    
    # Adding the main container to the page
    page.add(r)
    # Adding additional content
    page.add(ft.Column([
        ft.Container(expand=True, content=ft.Text("Here is search results")),
        ft.Text("Records found: 10")
    ]))
    # Update the page
    page.update()
# Example usage
if __name__ == "__main__":
    app = ft.App(test)
    app.launch()
Alitalia60
ZerG
Ну у вас в примере какая то угадайка нарисованаДавайте сначала без гениального кода попробуем
Хм, возможно на flexx это и работает
Но я тестирую flet

Пример взят из документации https://flet.dev/docs/controls/column#expanding-children

 import flet as ft
def test(page: ft.Page):
    r = ft.Column([
        ft.Container(expand=1, content=ft.Text("Header")),
        ft.Container(expand=3, content=ft.Text("Body")),
        ft.Container(expand=1, content=ft.Text("Footer"))
    ])
    page.add(r)
if __name__ == '__main__':
    ft.app(target=test)

В этом варианте в окне появляется только Header

Если убрать свойство expand во всех ft.Container то в окне вижу все три текста

Header
Body
Footer

Я где-то неправ? А где?
ZerG
flet это обертка над flex если flex сработает значит у вас все окей и питоном и ОС
ТОгда надо смотреть в сторону флета
Alitalia60
ZerG
flet это обертка над flex если flex сработает значит у вас все окей и питоном и ОСТОгда надо смотреть в сторону флета
Сейчас проверю
Alitalia60
ZerG
flet это обертка над flex если flex сработает значит у вас все окей и питоном и ОСТОгда надо смотреть в сторону флета
flexx - другой синтаксис.

Нет там ни Container, ни Text, ни Page

Alitalia60
Alitalia60
А вообще - есть ли форум русскоязычный по фреймворку flet?
Alitalia60
Alitalia60

В главном окне Page не работает
В контейнере заработало.

 import flet as ft
def test(page: ft.Page):
    page.theme_mode='light'
    cnt=ft.Container(width=200, height=400, border=ft.border.all(3, 'black'))
    r = ft.Column(spacing=10,
                  controls=
        [
        ft.Container(expand=1, content=ft.Text("Header"), bgcolor='gray',border=ft.border.all(5, 'red')),
        ft.Container(expand=3, content=ft.Text("Body"), bgcolor='gray',border=ft.border.all(5, 'red')),
        ft.Container(expand=1, content=ft.Text("Footer"),border=ft.border.all(5, 'red')),
    ])
    cnt.content=r
    page.add(cnt)
if __name__ == '__main__':
    ft.app(target=test)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB