Ir al contenido

Fila de lista

Una fila de lista: un icono, el texto y huecos start/end para cualquier widget. Admite selected, focused (borde de foco), disabled, anidar con indent y on_right_press para un menú contextual.

ui.list_item · Categoría: Listas y menús · Referencia completa →

Fila de listaFila de lista
  • Para cualquier lista vertical: archivos recientes, resultados, categorías de ajustes, personas.
  • Usa inset=True dentro de paneles para que el resaltado tenga margen.
import pyzed as pz
from pyzed import ui
class Recent(pz.App):
def __init__(self):
self.files = ["main.py", "app.py", "README.md"]
self.current = "main.py"
def view(self):
return pz.column([
ui.list_item(f, lambda f=f: setattr(self, "current", f), icon="file",
selected=f == self.current, inset=True)
for f in self.files
])
Fila de lista: TextoFila de lista: Texto
Texto
Código
pz.container(ui.list_item("README.md", on_open), width=240)
Fila de lista: icon=Fila de lista: icon=
icon=
Código
pz.container(ui.list_item("README.md", on_open, icon="file-text"), width=240)
Fila de lista: icon_color=Fila de lista: icon_color=
icon_color=
Código
pz.container(ui.list_item("main.py", on_open, icon="file-code", icon_color="#3572a5"), width=240)
Fila de lista: end=Fila de lista: end=
end=
Código
pz.container(ui.list_item("app.py", on_open, icon="file-code", end=ui.badge("M", tint="warning")), width=240)
Fila de lista: start=Fila de lista: start=
start=
Código
pz.container(ui.list_item("Buy milk", on_open, start=ui.checkbox(True, on_toggle)), width=240)
Fila de lista: color="error"Fila de lista: color="error"
color="error"
Código
pz.container(ui.list_item("Delete project", on_open, icon="trash-2", color="error"), width=240)
Fila de lista: selected=TrueFila de lista: selected=True
selected=True
Código
pz.container(ui.list_item("main.py", on_open, icon="file-code", selected=True), width=240)
Fila de lista: focused=TrueFila de lista: focused=True
focused=True
Código
pz.container(ui.list_item("main.py", on_open, icon="file-code", focused=True), width=240)
Fila de lista: disabled=TrueFila de lista: disabled=True
disabled=True
Código
pz.container(ui.list_item("old.txt", on_open, icon="file", disabled=True), width=240)
Fila de lista: inset=TrueFila de lista: inset=True
inset=True
Código
pz.container(ui.list_item("main.py", on_open, icon="file-code", selected=True, inset=True), width=240)
Fila de lista: indent=24Fila de lista: indent=24
indent=24
Código
pz.container(ui.list_item("button.rs", on_open, icon="file-code", indent=24), width=240)

on_right_press abre un menú contextual y tooltip= aparece al pasar el ratón.

Fila de lista: description=Fila de lista: description=
description=
Código
pz.container(ui.list_item("main.py", on_press, icon="file", description="src/app"), width=300)
Fila de lista: on_double_press=Fila de lista: on_double_press=
on_double_press=
Código
pz.container(ui.list_item("Rename me", on_press, icon="pencil", on_double_press=on_rename), width=300)

Fila de lista 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_press () Mensaje o callable que se envía al pulsar. None deshabilita el control.
on_right_press () Clic derecho.
on_double_press () Se envía con un doble clic (abrir, renombrar…).

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 Recent(pz.App):
def __init__(self):
self.files = ["main.py", "app.py", "README.md"]
self.current = "main.py"
self.opened = None
def view(self):
return pz.column([
ui.list_item(f, lambda f=f: setattr(self, "current", f), icon="file", # on_press
selected=f == self.current, inset=True,
on_double_press=lambda f=f: setattr(self, "opened", f),
on_right_press=lambda f=f: print("menu for", f))
for f in self.files
], width=280)
list_item(
content,
on_press=None,
*,
icon=None,
icon_color=None,
start=None,
end=None,
selected=False,
focused=False,
indent=0,
height=26,
color=None,
inset=False,
disabled=False,
on_right_press=None,
on_double_press=None,
description=None,
tooltip=None,
theme=None,
)

Una fila de lista: icono, texto y un hueco al final.

Propiedad Por defecto Descripción
content obligatorio Texto o widget.
icon None Nombre de un icono de Lucide (pyzed icons los lista).
icon_color None Color del icono: un token del tema o un color hex.
start None Widgets al inicio (izquierda).
end None Widgets al final (derecha).
selected False Lo marca como seleccionado.
focused False Dibuja un borde de foco.
indent 0 Sangría a la izquierda, en píxeles.
height 26 Alto de la fila.
color None Color del texto.
inset False Con margen y esquinas redondeadas (menús, paletas).
disabled False Lo deshabilita (ignora los clics).
description None Una segunda línea atenuada (la fila crece a 40 px salvo que fijes height).
tooltip None Texto al pasar el ratón.
theme None Tema a usar en lugar del actual (pyzed.theme.current()).

Eventos: on_press, on_right_press, on_double_press (eventos).

Referencia completa →