Zpět na projekty
TUIX v0.5Beta

Naposledy aktualizováno: 2026-05-20

Layout API

v0.5 přináší 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(builders.ROW, '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, builders.JUSTIFY_SPACE_BETWEEN)
objects.tuix_stack_set_align(row, builders.ALIGN_STRETCH)

label_uid = objects.tuix_stack_add_object(row, 'Main', builders.TEXT, 1.0, 1.0)
buffers.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
buffers.set_buffer_layout_slot_by_uid(uid, ...)Nastaví flex/grid slot hodnoty pro child buffer.
buffers.get_buffer_layout_slot_by_uid(uid)Vrátí aktuální pole slotu jako dict.
buffers.set_buffer_layout_rect_by_uid(uid, left, top, width, height)Nastaví explicitní override obdélníku v buňkách terminálu.
buffers.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 buffers.set_buffer_grid_placement_by_uid(...) nebo grid poli v layout slotu.

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

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

child_uid = objects.tuix_grid_add_object(grid, 'Main', builders.TEXT, 1.0, 1.0)
buffers.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(builders.SPLITPANE, 'Main', 0.9, 0.6, 0.2, 0.05)
split = objects.get_object_by_uid(split_uid)
objects.tuix_splitpane_set_orientation(split, builders.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ů.