Ir al contenido

Espacio de trabajo

Construye el marco de una ventana estilo editor: la barra de título arriba, docks a la izquierda, a la derecha y abajo, el centro y la barra de estado. Pasa None para ocultar un dock (así funciona Ctrl+B); left_width, right_width y bottom_height fijan su tamaño y on_resize avisa al arrastrar.

ui.workspace · Categoría: Espacio de trabajo · Referencia completa →

Espacio de trabajoEspacio de trabajo
  • Como raíz de apps tipo editor: IDEs, apps de notas, clientes de bases de datos, gestores de archivos.
import pyzed as pz
from pyzed import ui
class Ide(pz.App):
def __init__(self):
self.show_left = True
def on_key(self, combo):
if combo == "ctrl-b":
self.show_left = not self.show_left
def view(self):
return ui.workspace(
self.editor_area(),
title_bar=ui.title_bar([ui.title_button("my-project", chevron=True)]),
left=self.project_panel() if self.show_left else None,
status_bar=ui.status_bar([], [ui.status_item("Python")]),
)
Espacio de trabajo: Centro y barra de estadoEspacio de trabajo: Centro y barra de estado
Centro y barra de estado
Código
ui.workspace(main_view(), status_bar=ui.status_bar([], [ui.status_item("Python")]))
Espacio de trabajo: left=Espacio de trabajo: left=
left=
Código
ui.workspace(main_view(), left=pz.column([ui.panel_header("Project"),
ui.list_item("main.py", icon="file-code", selected=True, inset=True)]), left_width=150)
Espacio de trabajo: bottom=Espacio de trabajo: bottom=
bottom=
Código
ui.workspace(main_view(), bottom=pz.column([ui.panel_header("Terminal", icon="terminal"),
ui.terminal("$ python main.py")]), bottom_height=90)
Espacio de trabajo: right=Espacio de trabajo: right=
right=
Código
ui.workspace(main_view(), right=pz.column([ui.panel_header("Outline"), ui.list_item("class Notes", icon="box")]),
right_width=150)
Espacio de trabajo: title_bar=Espacio de trabajo: title_bar=
title_bar=
Código
ui.workspace(main_view(), title_bar=ui.title_bar([ui.title_button("pyzed", chevron=True)],
[ui.avatar("KV")]))

Espacio de trabajo 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_resize (side, size) Se llama con (side, size) cuando el usuario termina de cambiar el tamaño de un panel arrastrando su borde interior.

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 Ide(pz.App):
def __init__(self):
self.left_width, self.bottom_height = 220, 160
def resized(self, side, size): # on_resize: which dock and its new size
if side == "left":
self.left_width = size
elif side == "bottom":
self.bottom_height = size
def view(self):
return ui.workspace(main_view(), left=ui.panel_header("Project"), bottom=ui.panel_header("Terminal"),
left_width=self.left_width, bottom_height=self.bottom_height,
on_resize=self.resized)
workspace(
center,
*,
title_bar=None,
left=None,
right=None,
bottom=None,
status_bar=None,
left_width=240,
right_width=320,
bottom_height=220,
on_resize=None,
theme=None,
)

El layout de una ventana estilo editor: barra de título, docks izquierdo, derecho e inferior, centro y barra de estado. Pasa None para ocultar un dock.

Propiedad Por defecto Descripción
center obligatorio Contenido central (normalmente pestañas + editor).
title_bar None Barra de título (ui.title_bar).
left None Dock izquierdo.
right None Dock derecho.
bottom None Dock inferior.
status_bar None Barra de estado (ui.status_bar).
left_width 240 Ancho del dock izquierdo.
right_width 320 Ancho del dock derecho.
bottom_height 220 Alto del dock inferior.
theme None Tema a usar en lugar del actual (pyzed.theme.current()).

Eventos: on_resize (eventos).

Referencia completa →