Notificación
ui.toast dibuja una notificación con título, mensaje, acciones y botón de cerrar; kind es "info", "success", "warning" o "error". ui.toasts(base, items) las apila en la esquina inferior derecha encima de tu vista.
ui.toast · Categoría: Capas flotantes · Referencia completa →


pz.column([ ui.toast("Saved", "main.py was saved.", kind="success", on_dismiss=on_dismiss), ui.toast("Update available", "Pyzed 0.4 is on PyPI.", kind="info", actions=[ui.button("What's new", on_open, size="sm")], on_dismiss=on_dismiss), ui.toast("Could not connect", kind="error", on_dismiss=on_dismiss),], spacing=8)Cuándo usarlo
Sección titulada «Cuándo usarlo»- Para confirmar algo que pasó en segundo plano (guardado, copiado, conectado).
- Los mensajes que necesitan respuesta van en un Diálogo.
import pyzed as pzfrom pyzed import ui
import threading
class Notes(pz.App): def __init__(self): self.messages = []
def notify(self, title): self.messages.append(title) threading.Timer(3, pz.post, args=(("expire", title),)).start() # hide it after 3 s
def update(self, message): if message[0] == "expire": self.messages.remove(message[1])
def view(self): items = [ui.toast(m, kind="success", on_dismiss=lambda m=m: self.messages.remove(m)) for m in self.messages] return ui.toasts(self.main_view(), items)Variantes
Sección titulada «Variantes»

kind="info"Código
ui.toast("Update available", "Pyzed 0.5 is on PyPI.")

kind="success"Código
ui.toast("Saved", "main.py was saved.", kind="success")

kind="warning"Código
ui.toast("Low disk space", "2 GB left.", kind="warning")

kind="error"Código
ui.toast("Could not connect", "Check your network.", kind="error")Contenido
Sección titulada «Contenido»

Código
ui.toast("Copied to clipboard", kind="success")

actions=, on_dismiss=Código
ui.toast("Update available", "Restart to install it.", actions=[ui.button("Restart", on_restart, size="sm")], on_dismiss=on_dismiss)

icon="music"Código
ui.toast("Now playing", "Lo-fi beats", icon="music", width=280)Estados y eventos
Sección titulada «Estados y eventos»

progress=0.6Código
ui.toast("Uploading", "notes.md", kind="info", progress=0.6, on_dismiss=on_close)

on_press=Código
ui.toast("Build failed", "Click to see the log", kind="error", on_press=on_press)Eventos
Sección titulada «Eventos»Notificación tiene 2 eventos propios, en la tabla de abajo. Como todo widget, también tiene los 18 eventos comunes (click, double_click, right_click, mouse_enter, drag, key_down, resize…), que se conectan con .on(...): mira Eventos y Eventos de cada componente.
| Evento | El handler recibe | Cuándo |
|---|---|---|
on_dismiss |
() |
Mensaje o callable que se envía al cerrar. |
on_press |
() |
Hace pulsable la tarjeta. |
El handler recibe es lo que Pyzed le pasa a tu función: () es nada. Cualquier handler también puede ser un mensaje (un valor que no se puede llamar), que va a update().
Manejar los eventos
Sección titulada «Manejar los eventos»Los mismos eventos escritos de tres formas. Imperativa: métodos de la app que cambian self. Declarativa: los handlers producen mensajes y un único update() decide. Funcional: una función pura dibuja un estado inmutable y pide cambios con set_state(...). Mira Imperativo, declarativo y funcional.
class Notes(pz.App): def __init__(self): self.messages = ["Saved"] self.opened = 0
def view(self): items = [ui.toast(m, kind="success", on_dismiss=lambda m=m: self.messages.remove(m), # its ✕ on_press=lambda: setattr(self, "opened", self.opened + 1)) # the card for m in self.messages] return ui.toasts(main_view(), items)from dataclasses import dataclass
@dataclassclass Dismiss: text: str
class Notes(pz.App): messages = ["Saved"]
def update(self, message): match message: case Dismiss(text): self.messages = [m for m in self.messages if m != text]
def view(self): return ui.toasts(main_view(), [ui.toast(m, kind="success", on_dismiss=Dismiss(m)) for m in self.messages])from dataclasses import dataclass
@dataclass(frozen=True)class State: messages: tuple = ("Saved",)
def view(state, set_state): close = lambda m: set_state(messages=tuple(x for x in state.messages if x != m)) return ui.toasts(main_view(), [ui.toast(m, kind="success", on_dismiss=lambda m=m: close(m)) for m in state.messages])Propiedades y API
Sección titulada «Propiedades y API»ui.toast
Sección titulada «ui.toast»toast( title, message=None, *, kind='info', icon=None, on_dismiss=None, actions=(), width=340, progress=None, on_press=None, theme=None,)Una notificación.
| Propiedad | Por defecto | Descripción |
|---|---|---|
title |
obligatorio | Título. |
message |
None |
Texto secundario. |
kind |
"info" |
"info", "success", "warning" o "error". |
icon |
None |
Nombre de un icono de Lucide (pyzed icons los lista). |
actions |
() |
Widgets extra (normalmente botones) que se muestran como acciones. |
width |
340 |
Ancho: píxeles, "fill", "shrink" o "fill:N" (proporción). |
progress |
None |
De 0 a 1: una barra fina abajo (tiempo restante, una descarga). |
theme |
None |
Tema a usar en lugar del actual (pyzed.theme.current()). |
Eventos: on_dismiss, on_press (eventos).
ui.toasts
Sección titulada «ui.toasts»toasts(base, items, *, spacing=8)Muestra items (normalmente toast(...)) apilados en la esquina inferior derecha sobre base.
| Propiedad | Por defecto | Descripción |
|---|---|---|
base |
obligatorio | La interfaz de debajo. |
items |
obligatorio | Lista de toasts. |
spacing |
8 |
Separación entre hijos, en píxeles. |