TUIX v0.2.1Beta
Widget Vstup
Jednořádkové textové pole se zástupným textem, pohybem kurzoru a detekcí odeslání.
Vytvoření widgetu Vstup
from tuix.core import builders, objects, buffers
uid = objects.create_object(
builders.INPUT, b"main",
0.4, 0.1, # width: 40%, height: 10%
0.45, 0.3 # margin_top: 45%, margin_left: 30%
)
buf = buffers.get_buffer_by_uid(uid)
obj = buf.contents.obj.contentsFunkce API
tuix_input_set_placeholder(obj, text)
Nastaví zástupný text zobrazený, když je vstup prázdný.
| Parametr | Typ | Popis |
|---|---|---|
| obj | TuixObject | Ukazatel na objekt |
| text | bytes | Zástupný text (např. b"Type your name...") |
objects.tuix_input_set_placeholder(obj, b"Enter your name...")tuix_input_feed_input(obj, snapshot)
Zpracuje snímek vstupu. Podporuje psaní znaků, Backspace, Delete, pohyb kurzoru šipkami vlevo/vpravo, Home/End a Enter pro odeslání.
| Parametr | Typ | Popis |
|---|---|---|
| obj | TuixObject | Ukazatel na objekt |
| snapshot | TuixInputSnapshot | Snímek vstupu z input.get_snapshot() |
tuix_input_is_submitted(obj)
Vrací, zda uživatel odeslal vstup stiskem Enter.
| Návratová hodnota | Popis |
|---|---|
| bool | True pokud byl stisknut Enter, jinak False |
tuix_input_get_text(obj)
Vrací aktuální textový obsah vstupního pole. Nikdy nevrací None — pokud nebyl zadán žádný text, vrací prázdný řetězec.
| Návratová hodnota | Popis |
|---|---|
| str/bytes | Aktuální textový obsah |
tuix_input_get_result(obj)
Vrací odeslaný text. Platí pouze po tom, co is_submitted vrátí True.
| Návratová hodnota | Popis |
|---|---|
| str/bytes | None | Odeslaný text, pokud byl stisknut Enter, jinak None |
tuix_input_reset(obj)
Resetuje widget: vymaže text, resetuje stav odeslání a obnoví placeholder.
Podporované klávesy
| Klávesa | Akce |
|---|---|
| Libovolný tisknutelný znak | Vložit na pozici kurzoru |
| Backspace | Smazat znak před kurzorem |
| Delete | Smazat znak na pozici kurzoru |
| Šipka vlevo | Posunout kurzor doleva |
| Šipka vpravo | Posunout kurzor doprava |
| Home | Přesunout kurzor na začátek |
| End | Přesunout kurzor na konec |
| Enter | Odeslat vstup |
Kompletní příklad
from tuix.core import engine, builders, scenes, registry, objects, buffers, input
engine.init()
builders.register_standard()
scenes.init_scene(b"main")
registry.registry.current_scene_name = b"main"
input.listen()
uid = objects.create_object(builders.INPUT, b"main", 0.4, 0.1, 0.45, 0.3)
buf = buffers.get_buffer_by_uid(uid)
obj = buf.contents.obj.contents
objects.tuix_input_set_placeholder(obj, b"Type your name...")
while True:
snap = input.get_snapshot()
objects.tuix_input_feed_input(obj, snap)
engine.main_loop()
if objects.tuix_input_is_submitted(obj):
break
text = objects.tuix_input_get_text(obj)
print(f"You entered: {text}")
buffers.free_buffer(b"main", uid)
scenes.free_scene(b"main")
input.stop()
engine.shutdown()