def __init__(self, parent=None, width=100.0, filled=False, min_value=0, max_value=1.0, precision=2, value=None): LUIObject.__init__(self, x=0, y=0, w=width, h=0) LUICallback.__init__(self) max_numbers_before = max(len(str(int(max_value))), len(str(int(min_value)))) number_space_required = max_numbers_before if precision > 0: number_space_required += 1 + precision pixels_per_number = 7 self.precision = precision self.slider = LUISlider(self, width=width - pixels_per_number * number_space_required - 5, filled=filled, min_value=min_value, max_value=max_value, value=value) self.label = LUILabel(parent=self, shadow=True, text=u"1.23") self.label.right = 0 self.label.top = self.label.height - self.slider.height self.label.color = (1, 1, 1, 0.5) self.slider.add_change_callback(self._on_slider_changed) self.slider.add_change_callback(self._trigger_callback) self._on_slider_changed(self.slider, self.slider.get_value()) if parent is not None: self.parent = parent self.fit_to_children()
f.add_constructor_parameter("show_label", "False") # Functions f.add_public_function("get_value", [], "float") f.add_public_function("set_value", [("value", "float")]) f.add_property("value", "float") # Events f.construct_sourcecode("LUIProgressbar") # Create the checkbox layout = LUIVerticalLayout(parent=f.get_widget_node(), spacing=10) LUILabel(parent=layout.cell(), text="This is a progressbar:", color=(1, 1, 1, 0.4)) bar = LUIProgressbar(parent=layout.cell(), width=200.0) LUILabel(parent=layout.cell(), text="You can control it with this slider:", color=(1, 1, 1, 0.4)) slider = LUISlider(parent=layout.cell(), width=200.0, filled=True) slider.bind("changed", lambda event: bar.set_value(slider.value * 100.0)) f.set_actions({ "Set to 30%": lambda: bar.set_value(30), }) run()
# Constructor f.add_constructor_parameter("filled", "False") f.add_constructor_parameter("min_value", "0.0") f.add_constructor_parameter("max_value", "0.0") f.add_constructor_parameter("value", "None") # Functions f.add_public_function("get_value", [], "float") f.add_public_function("set_value", [("value", "float")]) f.add_property("value", "float") # Events f.add_event("changed") f.construct_sourcecode("LUISlider") # Create the checkbox layout = LUIVerticalLayout(parent=f.get_widget_node(), spacing=10) LUILabel(parent=layout.cell(), text="This is a filled slider:", color=(1, 1, 1, 0.4)) slider = LUISlider(parent=layout.cell(), width=200.0) LUILabel(parent=layout.cell(), text="This is a regular slider:", color=(1, 1, 1, 0.4)) slider_nofill = LUISlider(parent=layout.cell(), width=200.0, filled=False) f.set_actions({ "Set to 30%": lambda: slider.set_value(0.3), }) run()
f = DemoFramework() f.prepare_demo("LUIProgressbar") # Constructor f.add_constructor_parameter("show_label", "False") # Functions f.add_public_function("get_value", [], "float") f.add_public_function("set_value", [("value", "float")]) f.add_property("value", "float") # Events f.construct_sourcecode("LUIProgressbar") # Create the checkbox layout = LUIVerticalLayout(parent=f.get_widget_node(), spacing=10) LUILabel(parent=layout.cell(), text="This is a progressbar:", color=(1, 1, 1, 0.4)) bar = LUIProgressbar(parent=layout.cell(), width=200.0) LUILabel(parent=layout.cell(), text="You can control it with this slider:", color=(1, 1, 1, 0.4)) slider = LUISlider(parent=layout.cell(), width=200.0, filled=True) slider.bind("changed", lambda event: bar.set_value(slider.value * 100.0)) f.set_actions({ "Set to 30%": lambda: bar.set_value(30), }) run()