Ir al contenido

Capa

Apila overlay encima de base. Al pulsar fuera de la capa se envía on_dismiss, y backdrop oscurece la vista de detrás. Con overlay=None devuelve base sin cambios, así que puede envolver siempre tu vista. align_x, align_y y offset colocan la capa (por defecto centrada arriba, como una paleta de comandos).

ui.layer · Categoría: Capas flotantes · Referencia completa →

CapaCapa
  • Para mostrar paletas, buscadores, modales y menús encima de todo.
  • Para diálogos, Capa de diálogo ya los centra sobre un fondo oscurecido.
import pyzed as pz
from pyzed import ui
class App(pz.App):
def __init__(self):
self.finder_open = False
def view(self):
overlay = self.finder() if self.finder_open else None
return ui.layer(self.main_view(), overlay,
on_dismiss=lambda: setattr(self, "finder_open", False))
Capa: Arriba (por defecto)Capa: Arriba (por defecto)
Arriba (por defecto)
Código
ui.layer(main_view(), ui.card(ui.label("Overlay"), width=200), on_dismiss=on_close)
Capa: align_y="center"Capa: align_y="center"
align_y="center"
Código
ui.layer(main_view(), ui.card(ui.label("Overlay"), width=200), align_y="center",
on_dismiss=on_close)
Capa: align_x="end", align_y="end"Capa: align_x="end", align_y="end"
align_x="end", align_y="end"
Código
ui.layer(main_view(), ui.card(ui.label("Overlay"), width=200), align_x="end", align_y="end",
offset=16, on_dismiss=on_close)

Con overlay=None la capa devuelve tu vista sin cambios.

Capa: backdrop="#00000088"Capa: backdrop="#00000088"
backdrop="#00000088"
Código
ui.layer(main_view(), ui.card(ui.label("Overlay"), width=200), backdrop="#00000088",
align_y="center", on_dismiss=on_close)
Capa: overlay=NoneCapa: overlay=None
overlay=None
Código
ui.layer(main_view(), None)

Capa tiene 1 evento 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.

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().

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 App(pz.App):
def __init__(self):
self.finder_open = True
def view(self):
finder = ui.card(ui.muted("Search files…"), width=320)
return ui.layer(main_view(), finder if self.finder_open else None,
on_dismiss=lambda: setattr(self, "finder_open", False)) # click outside
layer(
base,
overlay=None,
*,
on_dismiss=None,
backdrop=None,
align_x='center',
align_y='start',
offset=72,
)

Apila overlay sobre base. Hacer clic fuera envía on_dismiss. Con overlay=None devuelve base tal cual.

Propiedad Por defecto Descripción
base obligatorio La interfaz de debajo.
overlay None Lo que flota encima (modal, paleta, menú).
backdrop None Color del fondo que oscurece la interfaz.
align_x "center" Alineación horizontal: "start"/"left", "center", "end"/"right".
align_y "start" Alineación vertical: "start"/"top", "center", "end"/"bottom".
offset 72 Distancia desde arriba cuando align_y es "start".

Eventos: on_dismiss (eventos).

Referencia completa →