GUI Slider

gui_slider.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import arcade
from arcade.experimental.uislider import UISlider
from arcade.gui import UIManager, UIAnchorWidget, UILabel
from arcade.gui.events import UIOnChangeEvent


class UIMockup(arcade.Window):
    def __init__(self):
        super().__init__(800, 600, "UI Mockup", resizable=True)
        self.manager = UIManager()
        self.manager.enable()
        arcade.set_background_color(arcade.color.DARK_BLUE_GRAY)

        ui_slider = UISlider(value=50, width=300, height=50)
        label = UILabel(text=f"{ui_slider.value:02.0f}")

        @ui_slider.event()
        def on_change(event: UIOnChangeEvent):
            label.text = f"{ui_slider.value:02.0f}"
            label.fit_content()

        self.manager.add(UIAnchorWidget(child=ui_slider))
        self.manager.add(UIAnchorWidget(child=label, align_y=100))

    def on_draw(self):
        self.clear()
        self.manager.draw()


if __name__ == '__main__':
    window = UIMockup()
    arcade.run()