TUIX v0.3Beta
Widget Progressbar
Animovaný vyplňovací pruh s možností změny znaků, barev a volitelným procentuálním štítkem.
Vytvoření progressbaru
from tuix.core import builders, objects, buffers
uid = objects.create_object(
builders.PROGRESSBAR, b"main",
0.5, 0.1, # width: 50%, height: 10%
0.1, 0.25 # margin_top: 10%, margin_left: 25%
)
buf = buffers.get_buffer_by_uid(uid)
obj = buf.contents.obj.contentsFunkce API
tuix_progressbar_set_value(obj, value)
Nastaví hodnotu progresu. Hodnota je omezena na [0.0, 1.0].
| Parametr | Typ | Popis |
|---|---|---|
| obj | TuixObject | Ukazatel na objekt z bufferu |
| value | float | Hodnota progresu mezi 0.0 (prázdné) a 1.0 (plné) |
objects.tuix_progressbar_set_value(obj, 0.75) # 75% filledtuix_progressbar_set_style(obj, fill, empty, fr, fg, fb, er, eg, eb)
Upraví vzhled pruhu pomocí znaků pro plné/prázdné části a RGB barev.
| Parametr | Typ | Popis |
|---|---|---|
| obj | TuixObject | Ukazatel na objekt |
| fill | bytes/char | Znak pro vyplněnou část (např. b'#') |
| empty | bytes/char | Znak pro prázdnou část (např. b'-') |
| fr, fg, fb | int (0–255) | RGB barva vyplněné části |
| er, eg, eb | int (0–255) | RGB barva prázdné části |
objects.tuix_progressbar_set_style(
obj,
ord(b'#'), ord(b'-'), # fill and empty characters
0, 200, 100, # fill color: green
100, 100, 100 # empty color: gray
)Kompletní příklad
from tuix.core import engine, builders, scenes, registry, objects, buffers, input
import time
engine.init()
builders.register_standard()
scenes.init_scene(b"main")
registry.registry.current_scene_name = b"main"
input.listen()
# Create two progress bars
uid_a = objects.create_object(builders.PROGRESSBAR, b"main", 0.6, 0.08, 0.1, 0.2)
uid_b = objects.create_object(builders.PROGRESSBAR, b"main", 0.6, 0.08, 0.25, 0.2)
buf_a = buffers.get_buffer_by_uid(uid_a)
obj_a = buf_a.contents.obj.contents
buf_b = buffers.get_buffer_by_uid(uid_b)
obj_b = buf_b.contents.obj.contents
# Custom styles
objects.tuix_progressbar_set_style(obj_a, ord(b'#'), ord(b'-'), 0, 200, 100, 80, 80, 80)
objects.tuix_progressbar_set_style(obj_b, ord(b'='), ord(b'.'), 200, 100, 0, 60, 60, 60)
# Animate
for i in range(101):
objects.tuix_progressbar_set_value(obj_a, i / 100.0)
objects.tuix_progressbar_set_value(obj_b, i / 200.0) # half speed
engine.main_loop()
time.sleep(0.03)
# Cleanup
buffers.free_buffer(b"main", uid_a)
buffers.free_buffer(b"main", uid_b)
input.stop()
engine.shutdown()