Skip to main content

Conjunto de componentes personalizados para Flet

Project description

Flet Components

License Python Flet

Descripción

Flet Components es una librería open source diseñada para extender los componentes nativos de Flet en Python, proporcionando elementos personalizados que facilitan la creación de interfaces más robustas y estilizadas. Este proyecto nace con el propósito de aportar nuevas funcionalidades y mejorar la experiencia de desarrollo al trabajar con Flet.

Características

  • Componentes personalizados: Incluye componentes como botones, áreas de texto, listas de tareas y más.
  • Facilidad de uso: Integra fácilmente en cualquier proyecto basado en Flet.
  • Extensible: Preparado para que la comunidad contribuya y expanda las funcionalidades.
  • Estilos consistentes: Utiliza una paleta de colores y tamaños de fuente unificados.

Instalación

Puedes instalar la librería directamente desde GitHub:

pip install flet_components

Uso Básico

Ejemplo de uso del componente Base

import flet as ft
from flet_components import Base

def main(page: ft.Page):
    def close_handler(e):
        print("Ventana cerrada.")

    base_component = Base(
        title="Mi Ventana",
        controls=[
            ft.Text("Este es el contenido principal."),
        ],
        close_function=close_handler,
        width=500,
        height=200,
        padding=ft.padding.all(20),
    )
    page.add(base_component)

ft.app(target=main)

Ejemplo de uso del componente BtnDelete

from flet_components import BtnDelete
import flet as ft

def main(page: ft.Page):
    def on_delete(e):
        print("Elemento eliminado")

    delete_button = BtnDelete(
        text="Eliminar",
        click=on_delete,
        bgcolor="#ff4d4d",
        padding=ft.padding.symmetric(10, 20),
    )

    page.add(delete_button)

ft.app(target=main)

Ejemplo de uso del componente Date

from flet_components import Date
import flet as ft

def main(page: ft.Page):
    date_display = Date(date="10-02-2025", template="Fecha:")
    page.add(date_display)

ft.app(target=main)

Ejemplo de uso completo

import flet as ft
import flet_components as tc
from assets.components.styles import Colors


class Task(tc.Base):
    """
    modal experimental que contiene todos los controles personalizados del modulo task.

    Args:
        title (str): Titulo a colocar por encima del modal.
        on_close (OptionalEventCallable): evento que se ejecuta cuando le das click al boton superior derecho (x).
    """

    def __init__(
        self, title: str = None, on_close: ft.OptionalEventCallable = None, data=None
    ):
        self.__data = data
        # Componentes
        self.TextArea = tc.TextArea(widht=None, expand=True, height=200)
        self.SubTaskList = tc.SubTaskList(expand=1)
        self.TitleInput = tc.TitleInput()
        self.Date = tc.Date(template="fecha:")
        self.State = tc.State()
        self.ProgressBar = tc.ProgressBar(value=0)
        self.__BtnDelete = tc.BtnDelete(
            text="Save task",
            bgcolor=Colors.color_primary,
            border=ft.border.all(2, color=Colors.color_C),
            bgcolor_hover=Colors.color_secundary,
            meta=self.__data,
        )

        self.on_close = on_close
        self.__row3 = ft.Row(
            alignment=ft.MainAxisAlignment.END,
            controls=[self.__BtnDelete],
        )

        self.controls = [
            self.TitleInput,
            ft.Row(
                [self.Date, self.State],
                alignment=ft.MainAxisAlignment.SPACE_BETWEEN,
            ),
            ft.Row(
                [ft.Container(content=self.ProgressBar, width=67)],
                alignment=ft.MainAxisAlignment.END,
            ),
            self.TextArea,
            self.SubTaskList,
            self.__row3,
        ]

        super().__init__(
            padding=30,
            height=600,
            width=530,
            controls=self.controls,
            close_function=self.on_close,
        )
        self.title = title

    @property
    def BtnDelete(self):
        self.__BtnDelete = self.__row3.controls[0]
        return self.__BtnDelete

    @BtnDelete.setter
    def BtnDelete(self, BtnDelete):
        self.__BtnDelete = BtnDelete
        self.__row3.controls[0] = self.__BtnDelete

    @property
    def data(self):
        self.__data = self.__BtnDelete.data
        return self.__data

    @data.setter
    def data(self, data):
        self.__data = data
        self.__BtnDelete.data = self.__data

Contribuciones

Este proyecto está abierto a la comunidad. Si deseas contribuir, sigue estos pasos:

  1. Haz un fork del repositorio.
  2. Crea una nueva rama (git checkout -b feature/nueva-funcionalidad).
  3. Realiza tus cambios y haz commit (git commit -am 'Agrega nueva funcionalidad').
  4. Sube tus cambios (git push origin feature/nueva-funcionalidad).
  5. Crea un Pull Request en GitHub.

Licencia

Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más información.

Contacto

Para más información o para colaborar, puedes contactarme en mis redes sociales: https://linktr.ee/pablo.css

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flet_components-0.0.9.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flet_components-0.0.9-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file flet_components-0.0.9.tar.gz.

File metadata

  • Download URL: flet_components-0.0.9.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for flet_components-0.0.9.tar.gz
Algorithm Hash digest
SHA256 5a0beb17d5078bd2b65f364d116bc1af91a4487855f9b80a17ae40f8c6f3f36f
MD5 c194918e2bb49977cd06cc4b4d3eb64f
BLAKE2b-256 12b982b478cda3ab1d0c6b26d6d510be1072e48f8dfbeae89872dd6cf69815da

See more details on using hashes here.

File details

Details for the file flet_components-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for flet_components-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 bf3b3fb3e98f8080473a36acf5ecfb657e3ac7bde5909024458e0903f45fff8e
MD5 250662423ce66c35eec4c6485b0604e6
BLAKE2b-256 ce1807cb3b55b31513617dcab85a608dce2e1d280c1407861ee0147c7bededa3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page