Estilo de formularios en el diseñador
Los formularios hechos en Pyzed Design usan los mismos temas y estilos que el código. Los fijas
en el panel Propiedades en lugar de escribir Python, y se guardan en el archivo .pzform.
El aspecto de un formulario se construye en capas, de lo general a lo concreto; cada capa solo cambia lo que fija:
flowchart LR
T["Tema<br/>One Dark, Gruvbox..."] --> L["Aspecto<br/>acento · fondo · radio · tamaño de letra"]
L --> G["Estilo global<br/>la sección Estilo del formulario"]
G --> C["Estilo del control<br/>la sección Estilo de cada control"]
1. El tema y el aspecto del formulario
Sección titulada «1. El tema y el aspecto del formulario»Haz clic en un hueco del lienzo para seleccionar el formulario y abre Propiedades → Aspecto:
| Campo | Qué hace | Se guarda como |
|---|---|---|
| Tema | Cualquier tema registrado: los incluidos y los que registre tu código. | "theme": "Gruvbox Dark" |
| Acento | Un color predefinido, × para el del tema o Acento propio con cualquier #rrggbb. Colorea botones principales, foco, enlaces y selección (with_accent). |
"accent": "#e11d48" |
| Fondo | El fondo de la ventana; vacío mantiene el del tema. | "background": "#101418" |
| Radio de esquina | El radio que usan todos los controles; 0 para esquinas rectas. |
"radius": 0 |
| Tamaño de letra | El tamaño base de todo el texto. | "font_size": 15 |

El tema del formulario es independiente del tema del propio editor (Ajustes → Apariencia): puedes diseñar un formulario claro en un editor oscuro.
2. El estilo global del formulario
Sección titulada «2. El estilo global del formulario»Con el formulario seleccionado, su sección Estilo es el estilo global de la ventana (lo mismo que App.style en
código):
- Color del texto, fuente, peso, cursiva, tamaño de letra e interlineado se aplican a todo texto que no fije los suyos. Una fuente serif aquí cambia de golpe cada etiqueta, botón y campo del formulario.
- Fondo, color del borde, radio de esquina y relleno pasan a ser los de la ventana.
3. El estilo de un control
Sección titulada «3. El estilo de un control»Selecciona un control y usa su propia sección Estilo: fondo (un color, un degradado o un relleno con máscara, con el selector de color), color del texto, fuente, peso, bordes, radio de esquina, sombra, relleno, margen y alineación. Los campos vacíos mantienen el aspecto propio del componente y Restablecer estilo los borra todos. La página Estilos y temas del diseñador describe cada campo y el selector de color.
Algunos controles también tienen propiedades de variante, tinte y tamaño, las mismas que en código (mira Estilo de componentes): prueba la variante de un botón antes de darle estilo a mano.
Qué guarda el archivo .pzform
Sección titulada «Qué guarda el archivo .pzform»Todo esto es JSON simple dentro del archivo del formulario, así que es fácil de revisar en Git o de cambiar a mano:
{ "format": "pyzed.form/1", "form": { "name": "Main", "theme": "Gruvbox Dark", "accent": "#fe8019", "background": null, "radius": 4, "font_size": 14.0, "style": { "font": "serif", "color": "text" } }, "controls": [ { "name": "guardar", "type": "button", "props": { "text": "Guardar" }, "style": { "radius": 0, "border_color": "accent", "border_width": 2 } } ]}style guarda las mismas propiedades que style(), escritas como lo hace
Style.to_dict() (un degradado se vuelve {"type": "linear", "angle": ..., "stops": [...]}).
Usar tu propio tema en un formulario
Sección titulada «Usar tu propio tema en un formulario»La lista Tema muestra todos los temas registrados. Para usar uno tuyo:
-
Regístralo en el archivo de código del formulario (el
.pyjunto al formulario, que Pyzed carga antes de abrirlo):ui/main.py import pyzed as pzpz.themes.register(pz.Theme.generate("Acme", background="#16131f", text="#ece9f5", accent="#a78bfa"))def guardar_click(form, event):... -
Escribe su nombre en el archivo del formulario (
"theme": "Acme"), o elígelo en Propiedades → Aspecto → Tema cuando el diseñador lo liste. -
Ejecuta el formulario (Ejecutar, o
pyzed run). Usa el tema Acme.