📦 FlowViewFt - Enrutador dinámico para Flet
FlowViewFt es una librería modular diseñada para simplificar la creación, organización y navegación entre vistas en proyectos desarrollados con Flet. Su enfoque está basado en el concepto de "flujo" (Flow), permitiendo transiciones naturales y estructuradas entre páginas, lo que facilita el mantenimiento y la escalabilidad del código.
🚀 Instalación
pip install FlowViewFt
🧠 Conceptos Clave
FlowViewFtParams: Encapsula los parámetros que se pueden pasar entre rutas.FlowViewFtState: Maneja el estado de una vista o componente de forma organizada.FlowViewFtView: Clase base para construir vistas reutilizables e independientes.
⚙️ Uso básico
main.py
import flet as ft
from FlowViewFt import FlowViewFt, route
from view.home_view import HomeView
from view.counter_view import CounterView
def main(page: ft.Page):
page.title = "Counter App"
FlowViewFt(
page=page,
routes=[
route("/", HomeView),
route("/counter", CounterView),
],
init_route="/",
)
ft.app(target=main)
state/CounterState.py
from FlowViewFt import FlowViewFtState
import flet as ft
class counter_state(FlowViewFtState):
def __init__(self, page):
super().__init__(page)
self.txt_number = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)
def minus_click(self,e):
if self.txt_number.value is not None:
self.txt_number.value = str(int(self.txt_number.value) - 1)
self.update()
def plus_click(self,e):
if self.txt_number.value is not None:
self.txt_number.value = str(int(self.txt_number.value) + 1)
self.update()
view/home_view.py
import flet as ft
from FlowViewFt import FlowViewFtView
class HomeView(FlowViewFtView):
def build(self):
return ft.View(
controls=[
ft.Text("Welcome to CounterApp", size=30),
ft.ElevatedButton(
"Go to Counter",
on_click=lambda _: self.page.go("/counter")
),
]
)
view/counter_view.py
import flet as ft
from FlowViewFt import FlowViewFtView
from state.CounterState import counter_state
class CounterView(FlowViewFtView):
def __init__(self, page):
super().__init__(page)
self.state = counter_state(self.page)
def build(self):
return ft.View(
horizontal_alignment=ft.CrossAxisAlignment.CENTER,
vertical_alignment=ft.MainAxisAlignment.CENTER,
controls=[
ft.Row(
controls=[
ft.IconButton(ft.Icons.REMOVE, on_click=self.state.minus_click),
self.state.txt_number,
ft.IconButton(ft.Icons.ADD, on_click=self.state.plus_click),
],
alignment=ft.MainAxisAlignment.CENTER,
),
ft.ElevatedButton(
"Go to Home",
on_click=lambda _: self.pop_go("/"),
),
]
)
🤝 Contribuciones
¡Las contribuciones son bienvenidas! Puedes enviar pull requests o sugerencias abriendo un issue en el repositorio de GitHub.
Metadata
Release files for FlowViewFt 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flowviewft-0.1.3.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flowviewft-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.4 kB
Release files / flowviewft-0.1.3.tar.gz
| Download URL | flowviewft-0.1.3.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e75418bd6f6fa061828dc99982b625b1404f526116b916e8e1424f8a3dfe2801
|
|
BLAKE2b-256 checksum How to use checksums |
e411d1f66b27ae8237e6004f8c3704e4b17de2f624571ff0dfdfb7a9701052fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / flowviewft-0.1.3-py3-none-any.whl
| Download URL | flowviewft-0.1.3-py3-none-any.whl |
|---|---|
| Size | 11.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9989b4f6e430d0518cce9b931c5a017f8c133cae8137a6a55bfee927dfc5271a
|
|
BLAKE2b-256 checksum How to use checksums |
c19fba15583925ec4027f6a320b7ba5b0c353831e66d26c4ef9f846d90bc5147
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|