Skip to main content

📦 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)

Source distribution for FlowViewFt 0.1.3
File Size Uploaded
flowviewft-0.1.3.tar.gz 7.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for FlowViewFt 0.1.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page