Ir al contenido

Botón

Muestra un botón con el estilo del tema. Toma los colores del tema actual, puede llevar un icono y un atajo de teclado, y tiene varias variantes y tamaños. Cualquier parámetro de estilo de pz.button (bg, hover_bg, color, shadow, radius…) reemplaza al del tema.

ui.button · Categoría: Acciones · Referencia completa →

BotónBotón
Estados al pasar el puntero y al pulsar, con un puntero real.
  • Para las acciones principales de un formulario, diálogo o barra.
  • Usa variant="solid" para la acción principal y "ghost" para las secundarias.
  • Para un botón con solo un icono, usa Botón de icono.
import pyzed as pz
from pyzed import ui
class Editor(pz.App):
def save(self):
...
def view(self):
return ui.button("Save", self.save, icon="save", keys="ctrl-s")

filled es la de por defecto; usa solid para la única acción principal de una pantalla.

Botón: variant="filled"Botón: variant="filled"
variant="filled"
Código
ui.button("Filled", on_press)
Botón: variant="ghost"Botón: variant="ghost"
variant="ghost"
Código
ui.button("Ghost", on_press, variant="ghost")
Botón: variant="subtle"Botón: variant="subtle"
variant="subtle"
Código
ui.button("Subtle", on_press, variant="subtle")
Botón: variant="outline"Botón: variant="outline"
variant="outline"
Código
ui.button("Outline", on_press, variant="outline")
Botón: variant="solid"Botón: variant="solid"
variant="solid"
Código
ui.button("Solid", on_press, variant="solid")
Botón: variant="tinted"Botón: variant="tinted"
variant="tinted"
Código
ui.button("Tinted", on_press, variant="tinted")

Un nombre de color como variant da un botón teñido; tint= colorea uno solid.

Botón: variant="accent"Botón: variant="accent"
variant="accent"
Código
ui.button("Upgrade", on_press, variant="accent", icon="sparkles")
Botón: variant="success"Botón: variant="success"
variant="success"
Código
ui.button("Done", on_press, variant="success", icon="check")
Botón: variant="warning"Botón: variant="warning"
variant="warning"
Código
ui.button("Careful", on_press, variant="warning", icon="triangle-alert")
Botón: variant="error"Botón: variant="error"
variant="error"
Código
ui.button("Delete", on_press, variant="error", icon="trash-2")
Botón: variant="info"Botón: variant="info"
variant="info"
Código
ui.button("Details", on_press, variant="info", icon="info")
Botón: variant="solid", tint="error"Botón: variant="solid", tint="error"
variant="solid", tint="error"
Código
ui.button("Delete forever", on_press, variant="solid", tint="error")
Botón: size="xs"Botón: size="xs"
size="xs"
Código
ui.button("Extra small", on_press, size="xs")
Botón: size="sm"Botón: size="sm"
size="sm"
Código
ui.button("Small", on_press, size="sm")
Botón: size="md"Botón: size="md"
size="md"
Código
ui.button("Medium", on_press, size="md")
Botón: size="lg"Botón: size="lg"
size="lg"
Código
ui.button("Large", on_press, size="lg")
Botón: icon="save"Botón: icon="save"
icon="save"
Código
ui.button("Save", on_press, icon="save")
Botón: icon_position="end"Botón: icon_position="end"
icon_position="end"
Código
ui.button("Next", on_press, icon="arrow-right", icon_position="end")
Botón: keys="ctrl-s"Botón: keys="ctrl-s"
keys="ctrl-s"
Código
ui.button("Save", on_press, icon="save", keys="ctrl-s")
Botón: icon_color="success"Botón: icon_color="success"
icon_color="success"
Código
ui.button("Online", on_press, icon="circle", icon_color="success")
Botón: Solo iconoBotón: Solo icono
Solo icono
Código
ui.button(icon="plus", on_press=on_press)

Un botón sin on_press se dibuja deshabilitado, así las acciones sin terminar lo parecen.

Botón: selected=TrueBotón: selected=True
selected=True
Código
ui.button("Selected", on_press, selected=True)
Botón: disabled=TrueBotón: disabled=True
disabled=True
Código
ui.button("Disabled", on_press, disabled=True)
Botón: Sin on_pressBotón: Sin on_press
Sin on_press
Código
ui.button("Not wired yet")
Botón: full_width=TrueBotón: full_width=True
full_width=True
Código
pz.container(ui.button("Sign in", on_press, variant="solid", full_width=True), width=280)

Los argumentos de estilo de pz.button (bg, hover_bg, pressed_bg, color, border_color, shadow, radius, padding) reemplazan los valores del tema solo en ese botón.

Botón: shadow=Botón: shadow=
shadow=
Código
ui.button("Lifted", on_press, variant="solid", shadow=("#00000066", (0, 4), 12))
Botón: bg=, color=Botón: bg=, color=
bg=, color=
Código
ui.button("Custom", on_press, bg="#c678dd", hover_bg="#d08ae6", color="#ffffff")
Botón: border_color=Botón: border_color=
border_color=
Código
ui.button("Gold border", on_press, variant="outline", border_color="#e5c07b")
Botón: radius=999Botón: radius=999
radius=999
Código
ui.button("Pill", on_press, variant="solid", radius=999)
Botón: loading=TrueBotón: loading=True
loading=True
Código
ui.button("Saving", on_press, icon="save", loading=True)
Botón: tooltip=Botón: tooltip=
tooltip=
Código
ui.button("Save", on_press, tooltip="Writes the file")

El widget pz.* de debajo: sin tema, todos los colores y tamaños son tuyos.

Botón: pz.buttonBotón: pz.button
pz.button
Código
pz.button("pz.button", on_press, padding=(6, 14), bg="#3a7bc8", color="#ffffff", radius=6)
Botón: Cualquier contenidoBotón: Cualquier contenido
Cualquier contenido
Código
pz.button(pz.row([pz.icon("heart", size=14), pz.text("Like")], spacing=6, align="center"), on_press,
padding=(6, 12), bg="#c678dd22", color="#c678dd", border_color="#c678dd", border_width=1, radius=999)

full_width=True estira el botón hasta el ancho de su contenedor.

Botón: Ancho completoBotón: Ancho completo

Botón 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_press ui.button, pz.button () Mensaje o callable que se envía al pulsar. None deshabilita el control.

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 Editor(pz.App):
def __init__(self):
self.saved = 0
def save(self): # on_press: called with nothing
self.saved += 1
def view(self):
return pz.row([
ui.button("Save", self.save, icon="save", variant="solid", keys="ctrl-s"),
ui.button("Reset", lambda: setattr(self, "saved", 0), variant="ghost"),
ui.label(f"Saved {self.saved} times"),
], spacing=8, align="center")
button(
content=None,
on_press=None,
*,
icon=None,
icon_position='start',
icon_color=None,
variant='filled',
tint=None,
size='md',
selected=False,
disabled=False,
full_width=False,
keys=None,
loading=False,
tooltip=None,
theme=None,
**style,
)

Un botón con tema, con variantes, tamaños, un icono y un atajo.

Propiedad Por defecto Descripción
content None Texto o widget.
icon None Nombre de un icono de Lucide (pyzed icons los lista).
icon_position "start" "start" o "end".
icon_color None Color del icono: un token del tema o un color hex.
variant "filled" "filled", "ghost", "subtle", "outline", "solid", "tinted", o un color semántico: "accent", "error", "warning", "success", "info".
tint None Color de las variantes solid y tinted.
size "md" "xs", "sm", "md" o "lg".
selected False Lo marca como seleccionado.
disabled False Lo deshabilita (ignora los clics).
full_width False Ocupa todo el ancho.
keys None Atajo que se muestra al final, escrito como texto: "ctrl-s", "cmd-k cmd-s".
loading False Muestra un spinner en lugar del icono e ignora las pulsaciones (mantén una suscripción pz.every(1/30, ...) mientras gira).
tooltip None Texto que aparece al pasar el ratón.
theme None Tema a usar en lugar del actual (pyzed.theme.current()).
**style — Cualquier parámetro de estilo de pyzed.button (bg, hover_bg, color…).

Eventos: on_press (eventos).

Referencia completa →

button(
content,
on_press=None,
*,
padding=None,
width=None,
height=None,
bg=None,
color=None,
border_color=None,
border_width=0.0,
radius=None,
shadow=None,
hover_bg=None,
hover_color=None,
hover_border_color=None,
pressed_bg=None,
disabled_color=None,
clip=False,
)

Un botón sin estilo predefinido. Para el botón con tema usa ui.button.

Propiedad Por defecto Descripción
content obligatorio Contenido del botón.
padding None Relleno interior: 8, (vertical, horizontal) o (arriba, derecha, abajo, izquierda).
width None Ancho: píxeles, "fill", "shrink" o "fill:N" (proporción).
height None Alto: píxeles, "fill", "shrink" o "fill:N" (proporción).
bg None Color de fondo ("#rrggbb[aa]", (r, g, b[, a]) o "transparent").
color None Color del texto o del icono.
border_color None Color del borde.
border_width 0.0 Grosor del borde en píxeles.
radius None Radio de las esquinas: un número o (sup_izq, sup_der, inf_der, inf_izq).
shadow None Sombra: (color, (dx, dy), desenfoque).
hover_bg None Fondo al pasar el ratón.
hover_color None Color del texto al pasar el ratón.
hover_border_color None Color del borde al pasar el ratón.
pressed_bg None Fondo mientras se pulsa.
disabled_color None Color del texto cuando está deshabilitado.
clip False Recorta el contenido que se sale de los límites.

Eventos: on_press (eventos).

Referencia completa →