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 →


pz.column([ ui.segmented(["Editor", "Terminal", "Both"], "Editor", on_select), ui.segmented(["Day", "Week", "Month"], "Week", on_select),], spacing=14, align="center")Cuándo usarlo
Sección titulada «Cuándo usarlo»- Para cambiar entre dos y cinco vistas o modos (Día / Semana / Mes).
- Solo con iconos, usa un Grupo de alternancia.
import pyzed as pzfrom 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))Variantes
Sección titulada «Variantes»Opciones
Sección titulada «Opciones»

Código
ui.segmented(["Code", "Preview"], "Code", on_select)

Código
ui.segmented(["Day", "Week", "Month"], "Week", on_select)

Código
ui.segmented(["XS", "S", "M", "L", "XL"], "M", on_select)Selección
Sección titulada «Selección»

Código
ui.segmented(["Editor", "Terminal", "Both"], "Editor", on_select)

Código
ui.segmented(["Editor", "Terminal", "Both"], "Both", on_select)Estados y eventos
Sección titulada «Estados y eventos»

Código
ui.segmented([("list", "List", "list"), ("grid", "Grid", "layout-grid")], "grid", on_select)

width="fill"Código
ui.segmented(["Day", "Week", "Month"], "Week", on_select, width=320)

disabled={"Month"}Código
ui.segmented(["Day", "Week", "Month"], "Day", on_select, disabled={"Month"})

size="sm"Código
ui.segmented(["Code", "Preview"], "Code", on_select, size="sm")Eventos
Sección titulada «Eventos»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().
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 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")from dataclasses import dataclass
@dataclassclass Mode: name: str
class Calendar(pz.App): mode = "Week"
def update(self, message): match message: case Mode(name): self.mode = name
def view(self): return ui.segmented(["Day", "Week", "Month"], self.mode, Mode)from dataclasses import dataclass
@dataclass(frozen=True)class State: mode: str = "Week"
def view(state, set_state): return ui.segmented(["Day", "Week", "Month"], state.mode, lambda m: set_state(mode=m))Consejos
Sección titulada «Consejos»Propiedades y API
Sección titulada «Propiedades y API»ui.segmented
Sección titulada «ui.segmented»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).