Zpět na projekty
TUIX v0.3Beta

Naposledy aktualizováno: 2026-05-20

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.contents

Funkce API

tuix_progressbar_set_value(obj, value)

Nastaví hodnotu progresu. Hodnota je omezena na [0.0, 1.0].

ParametrTypPopis
objTuixObjectUkazatel na objekt z bufferu
valuefloatHodnota progresu mezi 0.0 (prázdné) a 1.0 (plné)
objects.tuix_progressbar_set_value(obj, 0.75)  # 75% filled

tuix_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.

ParametrTypPopis
objTuixObjectUkazatel na objekt
fillbytes/charZnak pro vyplněnou část (např. b'#')
emptybytes/charZnak pro prázdnou část (např. b'-')
fr, fg, fbint (0–255)RGB barva vyplněné části
er, eg, ebint (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()