class SliderButton(ToggleButton): """ Displays a button that will show a slider when toggled on, and hide it when toggled off. Provides a callback to receive the value of the slider, and one for when the sliding has stopped. """ def __init__(self, interactor, value, min_val, max_val, label, on_show_slider=None, update=None, end=None, corner_radius=5, width=None, height=None, left=0, top=0, image=None, bgcolor=(.5, .5, .5), fgcolor=(1,1,1), font="Arial", opacity=1, size=14, states=None, halign=LEFT_ALIGN, valign=CENTER_ALIGN, point1=(0,.1), point2=(1,.1)): self.slider = Slider(interactor, update=update, end=end, title= label, value=value, min_val=min_val, max_val=max_val, point1=point1, point2=point2) def _show_slider(): if on_show_slider: on_show_slider() self.slider.show() super(SliderButton, self).__init__(interactor, label, on=_show_slider, off=self.slider.hide, corner_radius=corner_radius, width=width, height=height, left=left, top=top, image=image, bgcolor=bgcolor, fgcolor=fgcolor, font=font, opacity=opacity, size=size, states= states, on_prefix="Show", off_prefix="Hide", halign=halign, valign=valign) def get_value(self): return self.slider.repr.GetValue() def set_value(self, value): self.slider.repr.SetValue(value) def show(self): state = self.repr.GetState() if state == 1: self.slider.show() super(SliderButton, self).show() def hide(self): self.slider.hide() super(SliderButton, self).hide() def detach(self): super(SliderButton, self).detach() self.slider.detach() def copy(self, interactor): value = self.slider.repr.GetValue() min_val = self.slider.repr.GetMinimumValue() max_val = self.slider.repr.GetMaximumValue() p1x, p1y, _ = self.slider.repr.GetPoint1Coordinate().GetValue() p2x, p2y, _ = self.slider.repr.GetPoint2Coordinate().GetValue() b = SliderButton(interactor, value, min_val, max_val, self.label, update=self.slider.update_callback, end=self.slider.end_callback, corner_radius=self.radius, width=self.width, height=self.height, left=self.left, top=self.top, image=self.image, bgcolor=self.bgcolor, fgcolor=self.fgcolor, opacity=self.opacity, size=self.size, states=self.states, halign=self.halign, valign=self.valign, point1=(p1x,p1y), point2=(p2x, p2y)) state = self.repr.GetState() if state != 0: b.set_state(state) b.action(state) return b
class SliderButton(ToggleButton): """ Displays a button that will show a slider when toggled on, and hide it when toggled off. Provides a callback to receive the value of the slider, and one for when the sliding has stopped. """ def __init__(self, interactor, value, min_val, max_val, label, on_show_slider=None, update=None, end=None, corner_radius=5, width=None, height=None, left=0, top=0, image=None, bgcolor=(.5, .5, .5), fgcolor=(1, 1, 1), font="Arial", opacity=1, size=14, states=None, halign=LEFT_ALIGN, valign=CENTER_ALIGN, point1=(0, .1), point2=(1, .1)): self.slider = Slider(interactor, update=update, end=end, title=label, value=value, min_val=min_val, max_val=max_val, point1=point1, point2=point2) def _show_slider(): if on_show_slider: on_show_slider() self.slider.show() super(SliderButton, self).__init__(interactor, label, on=_show_slider, off=self.slider.hide, corner_radius=corner_radius, width=width, height=height, left=left, top=top, image=image, bgcolor=bgcolor, fgcolor=fgcolor, font=font, opacity=opacity, size=size, states=states, on_prefix="Show", off_prefix="Hide", halign=halign, valign=valign) def get_value(self): return self.slider.repr.GetValue() def set_value(self, value): self.slider.repr.SetValue(value) def show(self): state = self.repr.GetState() if state == 1: self.slider.show() super(SliderButton, self).show() def hide(self): self.slider.hide() super(SliderButton, self).hide() def detach(self): super(SliderButton, self).detach() self.slider.detach() def copy(self, interactor): value = self.slider.repr.GetValue() min_val = self.slider.repr.GetMinimumValue() max_val = self.slider.repr.GetMaximumValue() p1x, p1y, _ = self.slider.repr.GetPoint1Coordinate().GetValue() p2x, p2y, _ = self.slider.repr.GetPoint2Coordinate().GetValue() b = SliderButton(interactor, value, min_val, max_val, self.label, update=self.slider.update_callback, end=self.slider.end_callback, corner_radius=self.radius, width=self.width, height=self.height, left=self.left, top=self.top, image=self.image, bgcolor=self.bgcolor, fgcolor=self.fgcolor, opacity=self.opacity, size=self.size, states=self.states, halign=self.halign, valign=self.valign, point1=(p1x, p1y), point2=(p2x, p2y)) state = self.repr.GetState() if state != 0: b.set_state(state) b.action(state) return b
#print("START") # use of slider from slider import Slider slider = Slider() slider.show() slider = Slider(80, '$$$') slider.show(3, 0.03)