Grupo de radios
Un conjunto de botones de radio con una opción elegida. options son cadenas o pares (valor, etiqueta); on_select recibe el valor. horizontal=True los coloca en fila.
ui.radio_group · Categoría: Formularios · Referencia completa →


pz.row([ ui.radio_group(["Spaces", "Tabs"], "Spaces", on_select), ui.radio_group([("lf", "LF"), ("crlf", "CRLF"), ("cr", "CR")], "lf", on_select, horizontal=True),], spacing=40, align="center")Cuándo usarlo
Sección titulada «Cuándo usarlo»- Cuando cada opción necesita su etiqueta y conviene verlas todas (indentación: espacios o tabuladores).
- Para muchas opciones usa un Select.
import pyzed as pzfrom pyzed import ui
class Settings(pz.App): def __init__(self): self.indent = "spaces"
def view(self): return ui.radio_group([("spaces", "Spaces"), ("tabs", "Tabs")], self.indent, lambda value: setattr(self, "indent", value))Variantes
Sección titulada «Variantes»Dirección
Sección titulada «Dirección»

Código
ui.radio_group(["Spaces", "Tabs"], "Spaces", on_select)

horizontal=TrueCódigo
ui.radio_group(["LF", "CRLF", "CR"], "LF", on_select, horizontal=True)

spacing=16Código
ui.radio_group(["Small", "Medium", "Large"], "Medium", on_select, horizontal=True, spacing=16)Opciones
Sección titulada «Opciones»

Código
ui.radio_group([("lf", "Unix (LF)"), ("crlf", "Windows (CRLF)")], "crlf", on_select)

Código
ui.radio_group(["Yes", "No"], None, on_select, horizontal=True)Estados y eventos
Sección titulada «Estados y eventos»

disabled={"CR"}Código
ui.radio_group(["LF", "CRLF", "CR"], "LF", on_select, horizontal=True, disabled={"CR"})

descriptions=Código
ui.radio_group(["Spaces", "Tabs"], "Spaces", on_select, descriptions={"Spaces": "Indent with 4 spaces", "Tabs": "One tab per level"})Widget base
Sección titulada «Widget base»El widget pz.* de debajo: sin tema, todos los colores y tamaños son tuyos.


pz.radioCódigo
pz.row([pz.radio("Cats", True, on_select, accent="#e5c07b"), pz.radio("Dogs", False, on_select, accent="#e5c07b")], spacing=16)Eventos
Sección titulada «Eventos»Grupo de radios 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 | De | El handler recibe | Cuándo |
|---|---|---|---|
on_select |
ui.radio_group, pz.radio |
(value) |
Callable que recibe el valor 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 Settings(pz.App): def __init__(self): self.indent = "spaces"
def set_indent(self, value): # on_select gets the value, not the label self.indent = value
def view(self): return ui.radio_group([("spaces", "Spaces"), ("tabs", "Tabs")], self.indent, self.set_indent)from dataclasses import dataclass
@dataclassclass Indent: value: str
class Settings(pz.App): indent = "spaces"
def update(self, message): match message: case Indent(value): self.indent = value
def view(self): return ui.radio_group([("spaces", "Spaces"), ("tabs", "Tabs")], self.indent, Indent)from dataclasses import dataclass
@dataclass(frozen=True)class State: indent: str = "spaces"
def view(state, set_state): return ui.radio_group([("spaces", "Spaces"), ("tabs", "Tabs")], state.indent, lambda value: set_state(indent=value), horizontal=True)Consejos
Sección titulada «Consejos»Propiedades y API
Sección titulada «Propiedades y API»ui.radio_group
Sección titulada «ui.radio_group»radio_group( options, selected, on_select=None, *, horizontal=False, spacing=8, disabled=False, descriptions=None, id=None, theme=None,)Opciones mutuamente excluyentes como botones de radio.
| Propiedad | Por defecto | Descripción |
|---|---|---|
options |
obligatorio | Textos o pares (valor, etiqueta). |
selected |
obligatorio | Valor actual. |
horizontal |
False |
En fila en lugar de columna. |
spacing |
8 |
Separación entre hijos, en píxeles. |
disabled |
False |
True, o los valores a desactivar. |
descriptions |
None |
Asocia valores a una línea atenuada bajo su etiqueta. |
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).
pz.radio
Sección titulada «pz.radio»radio( label, selected, on_select=None, *, size=None, text_size=None, spacing=None, accent=None, bg=None, border_color=None, color=None,)Un botón de radio. Agrupa varios tú mismo (o usa ui.radio_group); on_select se envía al pulsarlo.
| Propiedad | Por defecto | Descripción |
|---|---|---|
label |
obligatorio | Texto de la etiqueta. |
selected |
obligatorio | Si está marcado. |
size |
None |
Tamaño. |
text_size |
None |
Tamaño del texto. |
spacing |
None |
Separación entre el círculo y el texto. |
accent |
None |
Color de acento (parte activa). |
bg |
None |
Color de fondo ("#rrggbb[aa]", (r, g, b[, a]) o "transparent"). |
border_color |
None |
Color del borde. |
color |
None |
Color del texto o del icono. |
Eventos: on_select (eventos).