Biblioteca reutilizável que encapsula todos os componentes do Flet v0.84.0, organizada em grupos temáticos.
Project description
DEx-Framework v0.0.49
Biblioteca reutilizável que encapsula todos os componentes do Flet v0.84.0, organizada em grupos temáticos, com UseCases demonstrativos para cada grupo.
Instalação
pip install flet==0.84.0
Clone o repositório e adicione ao PYTHONPATH ou instale em modo editável:
git clone <repo-url>
cd DEx-Framework_3
pip install -e .
Uso básico
Exemplo 1 — Botão com dex_id e callback de montagem
import flet as ft
from dex_framework import DEx_ElevatedButton
def main(page: ft.Page) -> None:
btn = DEx_ElevatedButton(
text="Salvar",
dex_id="btn_salvar",
on_click=lambda e: print("clicou"),
on_dex_ready=lambda c: print(f"{c.dex_id} montado"),
)
page.add(btn)
ft.app(target=main)
Exemplo 2 — Layout responsivo
import flet as ft
from dex_framework import DEx_ResponsiveRow, DEx_Container, DEx_Text
def main(page: ft.Page) -> None:
row = DEx_ResponsiveRow(
dex_id="row_principal",
controls=[
DEx_Container(
col={"sm": 12, "md": 6},
content=DEx_Text("Coluna esquerda", dex_id="txt_esq"),
bgcolor=ft.Colors.BLUE_50,
padding=16,
),
DEx_Container(
col={"sm": 12, "md": 6},
content=DEx_Text("Coluna direita", dex_id="txt_dir"),
bgcolor=ft.Colors.GREEN_50,
padding=16,
),
],
)
page.add(row)
ft.app(target=main)
Exemplo 3 — Tema customizado
import flet as ft
from dex_framework import DEx_Theme, DEx_ColorScheme
def main(page: ft.Page) -> None:
page.theme = DEx_Theme(
color_scheme_seed=ft.Colors.INDIGO,
color_scheme=DEx_ColorScheme(
primary=ft.Colors.INDIGO,
secondary=ft.Colors.TEAL,
dex_id="esquema_app",
),
dex_id="tema_app",
)
page.add(ft.Text("App com tema DEx!", size=24))
ft.app(target=main)
Estrutura de grupos
| Grupo | Componentes | Quantidade |
|---|---|---|
layout |
DEx_Row, DEx_Column, DEx_Stack, DEx_Container, DEx_ResponsiveRow, DEx_SafeArea | 6 |
navigation |
DEx_AppBar, DEx_NavigationBar, DEx_NavigationRail, DEx_NavigationDrawer, DEx_Tabs, DEx_CupertinoNavigationBar | 6 |
input |
DEx_TextField, DEx_Dropdown, DEx_Checkbox, DEx_Radio, DEx_RadioGroup, DEx_Switch, DEx_Slider, DEx_RangeSlider, DEx_DatePicker, DEx_TimePicker, DEx_CupertinoTextField, DEx_CupertinoCheckbox, DEx_CupertinoSlider, DEx_CupertinoSwitch | 14 |
buttons |
DEx_ElevatedButton, DEx_FilledButton, DEx_FilledTonalButton, DEx_OutlinedButton, DEx_TextButton, DEx_IconButton, DEx_FloatingActionButton, DEx_PopupMenuButton, DEx_MenuItemButton, DEx_SubmenuButton, DEx_CupertinoButton, DEx_CupertinoFilledButton | 12 |
display |
DEx_Text, DEx_Icon, DEx_Image, DEx_CircleAvatar, DEx_Card, DEx_DataTable, DEx_ListView, DEx_GridView, DEx_ListTile, DEx_ExpansionTile, DEx_ExpansionPanel, DEx_Markdown | 12 |
feedback |
DEx_ProgressBar, DEx_ProgressRing, DEx_SnackBar, DEx_AlertDialog, DEx_Banner, DEx_Tooltip, DEx_Badge, DEx_Chip, DEx_CupertinoAlertDialog, DEx_CupertinoActivityIndicator | 10 |
overlay |
DEx_BottomSheet, DEx_CupertinoBottomSheet, DEx_Drawer, DEx_SearchBar, DEx_SearchAnchor, DEx_MenuBar, DEx_Pagelet | 7 |
media |
DEx_Audio, DEx_Video, DEx_Lottie | 3 |
canvas |
DEx_Canvas | 1 |
maps |
DEx_Map | 1 |
charts |
DEx_BarChart, DEx_LineChart, DEx_PieChart | 3 |
scrolling |
DEx_ScrollableControl, DEx_DragTarget | 2 |
interaction |
DEx_GestureDetector, DEx_Draggable, DEx_Dismissible, DEx_SelectionArea, DEx_TransparentPointer | 5 |
theming |
DEx_Theme, DEx_ColorScheme | 2 |
| Total | 84 |
Como rodar os UseCases
Os UseCases ficam na pasta usecases/ na raiz do projeto.
Execute a partir da raiz do projeto (DEx-Framework_3/):
# Grupo buttons
python -m usecases.buttons.UC_buttons
# Grupo layout
python -m usecases.layout.UC_layout
# Grupo navigation
python -m usecases.navigation.UC_navigation
# Grupo input
python -m usecases.input.UC_input
# Grupo display
python -m usecases.display.UC_display
# Grupo feedback
python -m usecases.feedback.UC_feedback
# Grupo overlay
python -m usecases.overlay.UC_overlay
# Grupo media
python -m usecases.media.UC_media
# Grupo canvas
python -m usecases.canvas.UC_canvas
# Grupo maps
python -m usecases.maps.UC_maps
# Grupo charts
python -m usecases.charts.UC_charts
# Grupo scrolling
python -m usecases.scrolling.UC_scrolling
# Grupo interaction
python -m usecases.interaction.UC_interaction
# Grupo theming
python -m usecases.theming.UC_theming
Convenções DEx
Todos os componentes DEx seguem estas regras:
- Herança direta de
ft.<NomeOriginal>— 100% da API Flet preservada dex_id: str— identificador keyword-only para rastreamentoon_dex_ready— callback disparado após montagem na árvore (did_mount)- Type hints em todas as assinaturas (PEP 484)
- Docstrings Google Style em toda classe e método público
# Todos os componentes aceitam:
componente = DEx_<Nome>(
# ... parâmetros nativos do Flet ...
dex_id="meu_id", # identificador único
on_dex_ready=lambda c: print(c.dex_id), # callback de montagem
)
DEx-Framework v0.0.49 — gerado via Claude Code
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dex_framework-84.0.2.tar.gz.
File metadata
- Download URL: dex_framework-84.0.2.tar.gz
- Upload date:
- Size: 65.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41470d957b3bf8e3041a25c8bf3848741e84a1445451fe68cd933617bcac641d
|
|
| MD5 |
6d9a5498439a393b71e9814853deee53
|
|
| BLAKE2b-256 |
bee81f3f8cc8f4f57d491baf7375ed737c341d9448b43da2ce21f90d45f8e8b4
|
File details
Details for the file dex_framework-84.0.2-py3-none-any.whl.
File metadata
- Download URL: dex_framework-84.0.2-py3-none-any.whl
- Upload date:
- Size: 138.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8da478199bfcf34f4a33aacaa46e8e66a8d34f4575cd0be043dce017543d79ac
|
|
| MD5 |
96fb78cd9627482dcd913e7b9ea3eafb
|
|
| BLAKE2b-256 |
571fee98e8792c7ad4e39a1310eb48f714fee7a50bd72251fbf1688ad424b758
|