Saltar al contingut

Flet

Flet permet als desenvolupadors crear fàcilment aplicacions web, mòbils i d'escriptori en temps real amb Python.

Flet permet construir una interfície d’usuari pel teu programa amb controls Flet que estan basats en Flutter de Google.

Flet va més enllà de simplement empaquetar els widgets de Flutter. Afegeix el seu propi toc combinant widgets més petits, simplificant complexitats, implementant les millors pràctiques d’interfície d’usuari i aplicant valors predeterminats sensats. Això assegura que les teves aplicacions es vegin elegants i polides sense requerir esforços addicionals de disseny per la teva part.

Crea un projecte amb UV:

Terminal window
uv init school
cd school

Executa la següent comanda per afegir Flet com a dependència:

Terminal window
uv add 'flet[all]' --dev

Assegura’t que el CLI de Flet s’ha instal·lat i es pot executar:

Terminal window
uv run flet --version

Per crear una nova aplicació Flet “mínima”, executa la següent comanda:

Terminal window
uv run flet create

Modifica el fitxer main.py:

main.py
import flet as ft
def main(page: ft.Page):
page.title = "Flet counter example"
page.vertical_alignment = ft.MainAxisAlignment.CENTER
txt_number = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)
def minus_click(e):
txt_number.value = str(int(txt_number.value) - 1)
page.update()
def plus_click(e):
txt_number.value = str(int(txt_number.value) + 1)
page.update()
page.add(
ft.Row(
[
ft.IconButton(ft.Icons.REMOVE, on_click=minus_click),
txt_number,
ft.IconButton(ft.Icons.ADD, on_click=plus_click),
],
alignment=ft.MainAxisAlignment.CENTER,
)
)
ft.app(main)

El fitxer src/main.py conté el programa Flet. Té una funció main() on afegiràs elements d’interfície d’usuari (controls) a una pàgina o finestra.

L’aplicació acaba amb una funció bloquejant ft.app() que inicialitza l’aplicació Flet i executa main().

L’aplicació Flet es pot executar com a aplicació d’escriptori o web utilitzant una única comanda flet run.

Per executar l’aplicació Flet com a aplicació d’escriptori, utilitza la següent comanda:

Terminal window
uv run flet run

Aquesta comanda executarà main.py ubicat al directori actual.

L’aplicació s’iniciarà en una finestra nativa del sistema operatiu!

Per executar l’aplicació Flet com a aplicació web, utilitza la següent comanda:

Terminal window
uv run flet run --web

S’obrirà una nova finestra/pestanya del navegador i l’aplicació utilitzarà un port TCP aleatori.

Per executar en un port fix, utilitza l’opció --port (-p), per exemple:

Terminal window
uv run flet run --web --port 8000 main.py

Per defecte, Flet vigilarà el fitxer de script que s’ha executat i recarregarà l’aplicació cada vegada que el fitxer es modifiqui i es guardi, però no vigilarà els canvis en altres fitxers.

Terminal window
uv run flet run -d

Per vigilar el directori del script i tots els subdirectoris recursivament, utilitza la següent comanda:

Terminal window
poetry run flet run -d -r [script]

La interfície d’usuari està feta de Controls (també coneguts com a widgets).

Per fer els controls visibles a l’usuari, han de ser afegits a una Page o dins d’altres controls. Page és el control de nivell superior. La nidificació de controls es pot representar com un arbre amb Page com a arrel.

Els controls són simplement classes Python. Crea instàncies de control mitjançant constructors amb paràmetres que coincideixin amb les seves propietats, per exemple:

t = ft.Text(value="Hello, world!", color="green")

Per mostrar el control en una pàgina, afegeix-lo a la llista de controls de la Pàgina i crida page.update() per enviar els canvis de la pàgina al navegador o client d’escriptori:

text.py
import flet as ft
def main(page: ft.Page):
t = ft.Text(value="Hello, world!", color="green")
page.controls.append(t)
page.update()
ft.app(main)
Terminal window
uv run flet run text.py

Flet controls

A continuació tens un videos que t’explica tot el que et fa falta:

Play

El contingut d'aquest lloc web té llicència CC BY-NC-ND 4.0.

©2022-2025 xtec.dev