Skip to content

Column

Stacks its children vertically, with spacing, padding, align on the cross axis and an optional max_width. Like row, nested lists are flattened and None/False are ignored.

pz.column · Category: Layout · Full reference →

ColumnColumn
  • For forms, lists, page content and most view() roots.
import pyzed as pz
from pyzed import ui
box = lambda text, w=90, h=44: pz.container(ui.label(text), center=True, width=w, height=h, bg=pz.theme.current().element, radius=6)
pz.row([
pz.column([box("1"), box("2"), box("3")], spacing=8),
pz.column([box("wide", w=160), box("center"), box("end")], spacing=8, align="center"),
pz.column([box("top"), pz.vspace(), box("bottom")], spacing=8, height=170),
], spacing=32)
Column: align="start"Column: align="start"
align="start"
Code
box = lambda text, w=90, h=44: pz.container(ui.label(text), center=True, width=w, height=h, bg=pz.theme.current().element, radius=6)
pz.column([box("wide", w=160), box("B"), box("C")], spacing=8, align="start")
Column: align="center"Column: align="center"
align="center"
Code
box = lambda text, w=90, h=44: pz.container(ui.label(text), center=True, width=w, height=h, bg=pz.theme.current().element, radius=6)
pz.column([box("wide", w=160), box("B"), box("C")], spacing=8, align="center")
Column: align="end"Column: align="end"
align="end"
Code
box = lambda text, w=90, h=44: pz.container(ui.label(text), center=True, width=w, height=h, bg=pz.theme.current().element, radius=6)
pz.column([box("wide", w=160), box("B"), box("C")], spacing=8, align="end")
Column: spacing=16Column: spacing=16
spacing=16
Code
box = lambda text, w=90, h=44: pz.container(ui.label(text), center=True, width=w, height=h, bg=pz.theme.current().element, radius=6)
pz.column([box("1"), box("2")], spacing=16)
Column: pz.vspace()Column: pz.vspace()
pz.vspace()
Code
box = lambda text, w=90, h=44: pz.container(ui.label(text), center=True, width=w, height=h, bg=pz.theme.current().element, radius=6)
pz.column([box("top"), pz.vspace(), box("bottom")], height=170)
Column: padding=16Column: padding=16
padding=16
Code
box = lambda text, w=90, h=44: pz.container(ui.label(text), center=True, width=w, height=h, bg=pz.theme.current().element, radius=6)
pz.container(pz.column([box("1"), box("2")], spacing=8, padding=16),
border_color=pz.theme.current().border, border_width=1, radius=8)

Column has no events of its own: it shows what you give it. Like every widget it also has the 18 common events (click, double_click, right_click, mouse_enter, drag, key_down, resize…), attached with .on(...): see Events and Events of every component.

column(
children=None,
*,
spacing=0.0,
padding=None,
width=None,
height=None,
align=None,
max_width=None,
clip=False,
)

Stacks its children vertically.

Property Default Description
children None List of children. Nested lists are flattened and None and False are ignored, so you can write cond and widget.
spacing 0.0 Space between children, in pixels.
padding None Inner padding: 8, (vertical, horizontal) or (top, right, bottom, left).
width None Width: pixels, "fill", "shrink" or "fill:N" (proportion).
height None Height: pixels, "fill", "shrink" or "fill:N" (proportion).
align None Alignment of the children on the cross axis: "start", "center" or "end".
max_width None Maximum width in pixels.
clip False Clips content that overflows the bounds.

Full reference →