コード例 #1
0
ファイル: button.py プロジェクト: devarajun/uvcdat
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
コード例 #2
0
ファイル: button.py プロジェクト: dorukozturk/vcs
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
コード例 #3
0
ファイル: main.py プロジェクト: Andrey21245/test001
#print("START")

# use of slider

from slider import Slider

slider = Slider()
slider.show()

slider = Slider(80, '$$$')
slider.show(3, 0.03)