Contenido y paneles
Markdown, texto enriquecido y QR
Sección titulada «Markdown, texto enriquecido y QR»
pz.markdown("## Markdown\n\nTexto con **negrita**, `código` y [enlaces](https://iced.rs).", on_link=webbrowser.open) # import webbrowser
pz.rich_text([ pz.span("rich_text "), pz.span("mezcla ", color="#e5c07b"), pz.span("estilos", weight="bold", underline=True), pz.span(" en una línea", italic=True),])
pz.qr_code("https://albakore.github.io/pyzed/", cell_size=4)pz.markdown(source)renderiza Markdown con los colores del tema.ui.markdownes la misma idea con el tamaño y los colores de los componentes.on_link(url)recibe los enlaces pulsados.pz.rich_text(spans)combina fragmentospz.span(texto, color=, size=, font=, weight=, italic=, bg=, underline=, strikethrough=, link=)en un solo bloque de texto.pz.qr_code(data)dibuja un código QR;colorybgcambian sus colores.
Ejemplo completo: markdown_viewer.py.
Imágenes
Sección titulada «Imágenes»
pz.image("captura.png", width=240, height=140, content_fit="contain")pz.image("captura.png", width=160, height=140, opacity=0.5)pz.image("pixel-art.png", width=120, height=140, filter="nearest")pz.image_viewer("mapa.png", width="fill", height="fill") # zoom con la rueda, arrastrar para moversource puede ser una ruta, bytes con el archivo (PNG, JPEG, GIF, WebP, BMP…) o píxeles RGBA
con size=(ancho, alto). Opciones: content_fit ("contain", "cover", "fill", "none",
"scale_down"), filter ("linear" o "nearest"), opacity, radius, rotation y scale.
Para iconos vectoriales usa pz.svg.
Ejemplo completo: image_viewer.py.
Paneles redimensionables
Sección titulada «Paneles redimensionables»
ui.split( barra_lateral, ui.split(editor, terminal, vertical=True, ratio=self.alto, on_resize=self.set_alto), ratio=self.ancho, on_resize=self.set_ancho,)ui.split(first, second) separa dos widgets con un divisor arrastrable. La proporción es tuya:
guárdala en on_resize(ratio). vertical=True los apila. pz.split es la versión base, con
color, hover_color, thickness y handle configurables.
Rejillas
Sección titulada «Rejillas»pz.grid([tarjeta(p) for p in proyectos], columns=3, spacing=12)pz.grid(miniaturas, max_width=180, spacing=8, aspect_ratio=1) # columnas según el anchocolumns fija el número de columnas; max_width las calcula según el espacio disponible.
Popover
Sección titulada «Popover»
def view(self): base = pz.mouse_area(contenido, on_move=self.recordar_puntero, on_right_press=self.abrir_menu) menu = ui.menu([ui.MenuItem("Copiar", self.copiar), ui.MenuItem("Pegar", self.pegar)]) if self.menu else None return ui.popover(base, menu, x=self.x, y=self.y, on_dismiss=self.cerrar_menu)ui.popover(base, content, x=, y=) muestra content encima de base en esa posición; un clic
fuera llama a on_dismiss. Con content=None solo se ve base.
Ejemplo completo: context_menu.py.
Referencia: Widgets base y Overlays.