Ir al contenido

Cambios sin guardar

“¿Guardar los cambios de nombre antes de cerrar?” con No guardar, Cancelar y Guardar.

ui.unsaved_changes · Categoría: Diálogos · Referencia completa →

Cambios sin guardarCambios sin guardar
  • Al cerrar una pestaña o una ventana con cambios sin guardar.
from pyzed import ui
ui.dialog_layer(main_view(), ui.unsaved_changes("notes.py", on_save, on_discard, on_cancel))
Cambios sin guardar: Un archivoCambios sin guardar: Un archivo
Un archivo
Código
ui.unsaved_changes("notes.py", on_save, on_discard, on_cancel)
Cambios sin guardar: width=360Cambios sin guardar: width=360
width=360
Código
ui.unsaved_changes("report.pzform", on_save, on_discard, on_cancel, width=360)

Cambios sin guardar tiene 3 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_save () Guardar.
on_discard () No guardar.
on_cancel () Cancelar.

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 Notes(pz.App):
def __init__(self):
self.closing = True
def save(self):
self.closing = False # write the file, then close
def view(self):
dialog = ui.unsaved_changes("notes.py", self.save,
lambda: setattr(self, "closing", False), # on_discard
lambda: setattr(self, "closing", False)) # on_cancel
return ui.dialog_layer(main_view(), dialog if self.closing else None)
unsaved_changes(name, on_save, on_discard, on_cancel, *, width=440, theme=None)

«¿Guardar los cambios de nombre antes de cerrar?» con No guardar, Cancelar y Guardar.

Propiedad Por defecto Descripción
name obligatorio Nombre del archivo o documento.
width 440 Ancho: píxeles, "fill", "shrink" o "fill:N" (proporción).
theme None Tema a usar en lugar del actual (pyzed.theme.current()).

Eventos: on_save, on_discard, on_cancel (eventos).

Referencia completa →