Ir al contenido

Segmentado

Una fila de botones unidos en la que uno está seleccionado. on_select recibe la opción elegida.

ui.segmented · Categoría: Formularios · Referencia completa →

SegmentadoSegmentado
  • Para cambiar entre dos y cinco vistas o modos (Día / Semana / Mes).
  • Solo con iconos, usa un Grupo de alternancia.
import pyzed as pz
from pyzed import ui
class Calendar(pz.App):
def __init__(self):
self.mode = "Week"
def view(self):
return ui.segmented(["Day", "Week", "Month"], self.mode, lambda m: setattr(self, "mode", m))
Segmentado: Dos opcionesSegmentado: Dos opciones
Dos opciones
Código
ui.segmented(["Code", "Preview"], "Code", on_select)
Segmentado: Tres opcionesSegmentado: Tres opciones
Tres opciones
Código
ui.segmented(["Day", "Week", "Month"], "Week", on_select)
Segmentado: Cinco opcionesSegmentado: Cinco opciones
Cinco opciones
Código
ui.segmented(["XS", "S", "M", "L", "XL"], "M", on_select)
Segmentado: PrimeraSegmentado: Primera
Primera
Código
ui.segmented(["Editor", "Terminal", "Both"], "Editor", on_select)
Segmentado: ÚltimaSegmentado: Última
Última
Código
ui.segmented(["Editor", "Terminal", "Both"], "Both", on_select)
Segmentado: Con iconosSegmentado: Con iconos
Con iconos
Código
ui.segmented([("list", "List", "list"), ("grid", "Grid", "layout-grid")], "grid", on_select)
Segmentado: width="fill"Segmentado: width="fill"
width="fill"
Código
ui.segmented(["Day", "Week", "Month"], "Week", on_select, width=320)
Segmentado: disabled={"Month"}Segmentado: disabled={"Month"}
disabled={"Month"}
Código
ui.segmented(["Day", "Week", "Month"], "Day", on_select, disabled={"Month"})
Segmentado: size="sm"Segmentado: size="sm"
size="sm"
Código
ui.segmented(["Code", "Preview"], "Code", on_select, size="sm")

Segmentado 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_select (item) Callable que recibe el elemento elegido.

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 Calendar(pz.App):
def __init__(self):
self.mode = "Week"
def view(self):
return pz.column([
ui.segmented(["Day", "Week", "Month"], self.mode, lambda m: setattr(self, "mode", m)),
ui.label(f"Showing a {self.mode.lower()}"),
], spacing=8, align="center")
segmented(
options,
selected,
on_select=None,
*,
size='md',
width=None,
disabled=False,
id=None,
theme=None,
)

Un grupo de botones mutuamente excluyentes.

Propiedad Por defecto Descripción
options obligatorio Textos, (valor, etiqueta) o (valor, etiqueta, icono).
selected obligatorio El valor activo.
size "md" "sm", "md" o "lg".
width None "fill" reparte el ancho entre los botones.
disabled False True, o los valores a desactivar.
id None Identificador estable para enfocarlo o desplazarlo con un Command.
theme None Tema a usar en lugar del actual (pyzed.theme.current()).

Eventos: on_select (eventos).

Referencia completa →