TUIX v0.6Beta
API životního cyklu a správy objektů (tuix.core.object)
Balíček `tuix.core.object` poskytuje nativní alokaci životního cyklu objektů, správu unikátních UID, překlad ukazatelů, uvolňování paměti, diagnostické snapshoty a propojení s buffery. Settery a gettery jednotlivých widgetů jsou přehledně kategorizovány v sekci Vestavěné widgety.
Vytváření objektů a životní cyklus
| Funkce | Parametry a popis | Návratová hodnota a poznámky |
|---|---|---|
| objects.create_object(builder_name, scene_name, width_mod, height_mod, margin_top_mod=0.0, margin_left_mod=0.0) -> int | Alokuje nový objekt se zadaným builderem ve scéně s proporcionálními rozměry (0.0 až 1.0). | Vrací kladné celé číslo UID objektu (> 0), nebo 0 při chybě. |
| objects.create_object_ex(builder_name, scene_name, width_mod, height_mod, margin_top_mod, margin_left_mod, user_data=0) -> int | Rozšířená funkce tvorby objektu umožňující navázání vlastního nativního ukazatele user_data. | Vrací kladné celé číslo UID objektu, nebo 0 při chybě. |
| objects.get_object_by_uid(uid: int) | Přeloží celočíselné UID objektu na nativní ukazatel objektu (`obj_ptr`). | Předávejte vrácený `obj_ptr` setterům a getterům jednotlivých widgetů. |
| objects.tuix_object_free_ptr(obj_ptr) -> None | Explicitně uvolní paměť nativního objektu a uvolní jeho přiřazený buffer. | Používejte pro dynamické rušení widgetů uvnitř scén. |
Diagnostika objektů a inspekce bufferů
| Funkce | Popis |
|---|---|
| objects.get_object_snapshot_by_uid(uid: int) -> dict | Vrací vláknově bezpečný slovníkový snapshot metadat objektu (uid, builder_name, scene_name, buffer_uid, visible, enabled). |
| objects.get_object_snapshot(obj_ptr) -> dict | Vrací slovníkový snapshot podle ukazatele objektu. |
| objects.tuix_object_get_buffer(obj_ptr) -> int | Vrací adresu nativního buffer handlu přiřazeného k tomuto objektu. |
| objects.tuix_object_get_uid(obj_ptr) -> int | Přečte unikátní UID z nativního ukazatele objektu. |
| objects.tuix_object_get_scene(obj_ptr) -> bytes | Vrací bajty názvu scény vlastnící tento objekt. |
Příklad použití
from tuix.core import object as objects, content_builder, scene
# Create object in scene
uid = objects.create_object(content_builder.BUTTON, b'Main', 0.3, 0.1, 0.1, 0.1)
btn = objects.get_object_by_uid(uid)
# Inspect snapshot
snap = objects.get_object_snapshot_by_uid(uid)
print('Object snapshot:', snap)
# Free object when done
objects.tuix_object_free_ptr(btn)