Zpět na projekty
TUIX v0.1Alfa

Naposledy aktualizováno: 2026-05-20

Vaše první choice menu

Tento tutoriál vás provede vytvořením kompletního interaktivního choice menu s TUIX Core — od inicializace enginu až po render a zpracování vstupu z klávesnice.

Krok 1: Inicializujte engine

Začněte vytvořením instance TuixEngine. Tím se nastaví všechny subsystémy (styles, components, layout, render, input).

from tuix.core import TuixEngine

engine = TuixEngine()

Krok 2: Vytvořte komponentu

Použijte engine.components.create() pro registraci nové komponenty. První argument je typ ('choice', 'progress_bar' nebo 'text_input') a druhý je unikátní string ID.

engine.components.create('choice', 'main_menu')

Krok 3: Nastavte vlastnosti

Nastavte label a choices. Parametr choices je seznam řádků, kde každý řádek je seznam slovníků tlačítek s klíči 'name' a 'action'. Více tlačítek v jednom řádku se zobrazí vedle sebe.

engine.components.set_property(
    id='main_menu',
    param='label',
    value='Welcome! Choose an option:'
)

engine.components.set_property(
    id='main_menu',
    param='choices',
    value=[
        [{'name': 'New Game', 'action': 'new_game'}, {'name': 'Load Game', 'action': 'load'}],
        [{'name': 'Settings', 'action': 'settings'}],
        [{'name': 'Exit', 'action': 'exit'}]
    ]
)
Struktura choicesKaždý podseznam v choices představuje jeden řádek tlačítek. Řádek 1 výše má dvě tlačítka vedle sebe ('New Game' a 'Load Game'), zatímco řádky 2 a 3 mají po jednom tlačítku.

Krok 4: Nastavte layout

Nastavte velikost a pozici komponenty. Rozměry používají modifikátory od 0.0 do 1.0 relativně k velikosti terminálu. Použijte margin_mode pro centrování komponenty.

engine.layout.set_dimensions(
    id='main_menu',
    width_modifier=0.5,
    height_modifier=0.5
)

engine.layout.margin_mode(
    id='main_menu',
    param=['margin_top', 'margin_left'],
    mode='centered'
)

Krok 5: Render

Zavolejte engine.render.draw() pro vyčištění obrazovky, výpočet layoutu, render box-drawn menu a start input smyčky z klávesnice. Použijte šipky pro navigaci a Enter pro výběr.

engine.render.draw()
Pouze jedna komponentaAktuálně lze renderovat pouze jednu komponentu najednou. Multi-component layout je stále ve vývoji. Pokud je registrováno nula nebo více než jedna komponenta, draw() vyhodí chybu.