Zpět na projekty
TUIX v0.6Beta

Naposledy aktualizováno: 2026-08-14

Layout API

v0.6 poskytuje nativní layout buildry a API pro umístění dětí. Row a Column používají stack API, SplitPane řídí dva panely a Grid umisťuje děti do pevných nebo vážených tracků.

Row a Column

Row a Column jsou stack layout parenty. Připojte existující děti nebo vytvořte nové child objekty přes stack helpery a pak dolaďte gap, padding, justify, align a volitelnou barvu pozadí.

row_uid = objects.create_object(content_builder.ROW, b'Main', 0.9, 0.2, 0.05, 0.05)
row = objects.get_object_by_uid(row_uid)

objects.tuix_stack_set_gap(row, 2)
objects.tuix_stack_set_padding(row, 1, 1, 1, 1)
objects.tuix_stack_set_justify(row, content_builder.JUSTIFY_SPACE_BETWEEN)
objects.tuix_stack_set_align(row, content_builder.ALIGN_STRETCH)

label_uid = objects.tuix_stack_add_object(row, b'Main', content_builder.TEXT, 1.0, 1.0)
buffer.set_buffer_layout_slot_by_uid(label_uid, grow=1.0, min_w=12)

Override layout slotu

Layout slot popisuje, jak se dítě účastní parent layoutu. Podporuje grow, shrink, basis, min/max velikosti, align_self a grid placement pole.

FunkceÚčel
buffer.set_buffer_layout_slot_by_uid(uid, ...)Nastaví flex/grid slot hodnoty pro child buffer.
buffer.get_buffer_layout_slot_by_uid(uid)Vrátí aktuální pole slotu jako dict.
buffer.set_buffer_layout_rect_by_uid(uid, left, top, width, height)Nastaví explicitní override obdélníku v buňkách terminálu.
buffer.clear_buffer_layout_rect_by_uid(uid)Zruší explicitní override obdélníku.

Grid

Grid používá pevné a vážené tracky řádků/sloupců. Děti umisťujte přes buffer.set_buffer_grid_placement_by_uid(...) nebo grid poli v layout slotu.

grid_uid = objects.create_object(content_builder.GRID, b'Main', 0.9, 0.5, 0.35, 0.05)
grid = objects.get_object_by_uid(grid_uid)

objects.tuix_grid_set_columns(grid, [
    (content_builder.GRID_TRACK_WEIGHT, 1),
    (content_builder.GRID_TRACK_FIXED, 24),
])
objects.tuix_grid_set_rows(grid, [
    (content_builder.GRID_TRACK_FIXED, 3),
    (content_builder.GRID_TRACK_WEIGHT, 1),
])
objects.tuix_grid_set_gaps(grid, 1, 1)

child_uid = objects.tuix_grid_add_object(grid, b'Main', content_builder.TEXT, 1.0, 1.0)
buffer.set_buffer_grid_placement_by_uid(child_uid, row=1, col=0, row_span=1, col_span=2)

SplitPane

SplitPane řídí dvě připojené děti. Nastavte orientaci, rozdělení poměrem nebo absolutními pixely, velikost dělítka, minimální velikosti panelů a barvy.

split_uid = objects.create_object(content_builder.SPLIT_PANE, b'Main', 0.9, 0.6, 0.2, 0.05)
split = objects.get_object_by_uid(split_uid)
objects.tuix_splitpane_set_orientation(split, content_builder.AXIS_HORIZONTAL)
objects.tuix_splitpane_set_split_ratio(split, 0.35)
objects.tuix_splitpane_set_min_sizes(split, 10, 10)

Konstanty

KonstantaVýznam
AXIS_HORIZONTAL / AXIS_VERTICALOrientace pro split pane a axis-aware widgety.
JUSTIFY_START / CENTER / END / SPACE_BETWEENRozložení na hlavní ose pro Row a Column.
ALIGN_START / CENTER / END / STRETCH / AUTOZarovnání na vedlejší ose pro děti stacku.
GRID_TRACK_FIXED / GRID_TRACK_WEIGHTRežimy velikosti grid tracků.