示例#1
0
def FractionEq(self):
    def goBack(self):
        Fl.clear_widgets()
        GameSelector(self)

    # all these update_x are for window resizing
    def update_rect(*args):
        width = Fl.size[0] / 5 * 3
        height = Fl.size[1] / 5 * 3
        rec.pos = ((Fl.width / 5), (Fl.height * (3 / 11)))
        rec.size = (width, height)

    def update_line(*args):
        width = Fl.size[0] / 5 * 3
        height = Fl.size[1] / 5 * 3
        for x in range(1, denominator):
            line.points = [((width / denominator) * x) + Fl.size[0] / 5,
                           (Fl.height * (13 / 15)),
                           ((width / denominator) * x) + Fl.size[0] / 5,
                           (Fl.height * (5 / 18))]
            line.dash_length = 60
            line.dash_offset = 60

    def update_numerator(*args):
        width = ((Fl.size[0] / 5 * 3) / denominator) * numerator
        height = Fl.size[1] / 5 * 3
        line.dash_length = 60
        line.dash_offset = 60
        rec2.pos = ((Fl.width / 5), (Fl.height * (3 / 11)))
        rec2.size = (width, height)

    def update_sliderNum(*args):
        width = Fl.size[0] / 5 * 3
        height = Fl.size[1] / 5 * 3
        for x in range(1, slider.value):
            line2.points = [((width / slider.value) * x) + Fl.size[0] / 5,
                            (Fl.height * (13 / 15)),
                            ((width / slider.value) * x) + Fl.size[0] / 5,
                            (Fl.height * (5 / 18))]

    # draws lines on canvas

    def sliderLines():
        with wid3.canvas:
            wid3.canvas.clear()
            Color(.1, .1, .1)
            for x in range(1, slider.value):
                line2 = Line(points=[
                    (((width / slider.value) * x) + Fl.size[0] / 5),
                    (Fl.height * (13 / 15)),
                    (((width / slider.value) * x) + Fl.size[0] / 5),
                    (Fl.height * (5 / 18))
                ],
                             width=4,
                             color=(.23, .6, .2))

        Fl.add_widget(wid3)

    def sliderValFunc(instance, val):
        sliderVal.text = "%d" % val
        Fl.remove_widget(wid3)
        sliderLines()
        return sliderVal.text

    def newQuestionFunc(self):
        randomQuestion = Fractions.level1()
        questionLabel.text = randomQuestion
        currFraction = questionLabel.text.split("/")
        denominator = int(currFraction[1])
        Fl.clear_widgets()
        FractionEq(self)


# checks students response

    def answerChecker(self):
        if int(slider.value) % denominator == 0:
            equivNumerator = int(slider.value) / denominator
            equiviFrac = int(equivNumerator) * numerator
            newFrac = "%i/%i" % (equiviFrac, slider.value)
            response = "%i/%i" % (equiviFrac, int(slider.value))
            checkAnswerBtn.background_normal = ''
            checkAnswerBtn.background_color = (.1, .7, .2, .9)
            rightSound.play()
            rightResponse = TimedRightResponse()
            correctResp = Label(text='%s is equal to %s' %
                                (str(questionLabel.text), str(newFrac)),
                                color=(0, 0, 0, 1),
                                font_size=62,
                                pos_hint={
                                    "x": .4,
                                    'y': .06
                                },
                                size_hint=(.2, .1))
            Fl.add_widget(correctResp)
        else:
            wrongSound.play()
            checkAnswerBtn.background_normal = ('')
            checkAnswerBtn.background_color = (1, .3, .3, .9)
            checkAnswerBtn.text = ("TRY AGAIN")
            try:
                sql = "UPDATE login SET incorrect = incorrect || ' " + str(
                    slider.value) + str("/") + str(
                        denominator) + ",' WHERE user = '******';"

                cursor.execute(sql)
                conn.commit()
                print(sql)
            except:
                sql = "UPDATE login SET incorrect = incorrect || '" + str(
                    slider.value) + str("/") + str(
                        denominator) + "' WHERE user = "******"; "
                print(sql)
                print("Failed to add inc. ans")

            wrongResponse = TimedWrongResponse()

    class TimedRightResponse(Widget):
        myCount = 0
        boolRun = True

        def __init__(self, **kwargs):
            Clock.schedule_interval(self.update, 1)
            super(TimedRightResponse, self).__init__(**kwargs)

        def update(self, *args):
            if self.boolRun == True:
                if self.myCount < 1:
                    print(self.myCount)
                    self.myCount += 1
                else:
                    checkAnswerBtn.background_color = (.4, .4, .4, 1)
                    checkAnswerBtn.text = 'Check Answer'
                    self.myCount = 0
                    self.boolRun = False

    class TimedWrongResponse(Widget):
        myCount = 0
        boolRun = True

        def __init__(self, **kwargs):
            Clock.schedule_interval(self.update, 1)
            super(TimedWrongResponse, self).__init__(**kwargs)

        def update(self, *args):
            if self.boolRun == True:
                if self.myCount < 1:
                    print(self.myCount)
                    self.myCount += 1
                else:
                    checkAnswerBtn.background_color = (.4, .4, .4, 1)
                    checkAnswerBtn.text = 'Check Answer'
                    self.myCount = 0
                    self.boolRun = False

    wid = Widget()
    wid1 = Widget()
    wid2 = Widget()

    # --------Fix me-------------------
    dropdown = DropDown()

    dropBtn1 = Button(text='level 1', size_hint_y=None, height=44)
    dropBtn1.bind(on_release=lambda btn: dropdown.select(dropBtn1.text))
    dropdown.add_widget(dropBtn1)
    dropBtn2 = Button(text='level 2', size_hint_y=None, height=44)
    dropBtn2.bind(on_release=lambda btn: dropdown.select(dropBtn2.text))
    dropdown.add_widget(dropBtn2)
    dropBtn3 = Button(text='level 3', size_hint_y=None, height=44)
    dropBtn3.bind(on_release=lambda btn: dropdown.select(dropBtn3.text))
    dropdown.add_widget(dropBtn3)
    mainbutton = Button(text='Level Selector',
                        size_hint=(.1, .08),
                        pos_hint={
                            "x": .85,
                            "y": .79
                        })

    mainbutton.bind(on_release=dropdown.open)

    dropdown.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', x))

    # --------------------------

    logo = Image(source='Images/SH_box2BSHSUName_021_horizontalstack_3_29.png',
                 allow_stretch=True,
                 pos_hint={
                     "x": .01,
                     'y': .9
                 },
                 size_hint=(.2, .1))

    backBtnImage = Image(source='Images/eback-button-6-921315_2_15.png',
                         pos_hint={
                             "x": .01,
                             'y': .83
                         },
                         size_hint=(.04, .07),
                         keep_ratio=True)

    backBtn = Button(pos_hint={
        "x": .01,
        'y': .83
    },
                     size_hint=(.141, .07),
                     background_color=(1, 1, 1, .01))
    backBtn.bind(on_release=goBack)

    questionLabel = Label(text=Fractions.level1(),
                          font_size=68,
                          color=(.1, .1, .1, 1),
                          pos_hint={
                              'x': .5,
                              'y': .93
                          },
                          size_hint=(.001, .001))

    slider = Slider(min=1,
                    max=28,
                    step=1,
                    pos_hint={
                        'x': .2,
                        'y': .15
                    },
                    size_hint=(.6, .05))
    slider.bind(value=sliderValFunc)

    sliderVal = Label(text='1',
                      font_size=68,
                      color=(.1, .1, .1, 1),
                      pos_hint={
                          'x': .5,
                          'y': .22
                      },
                      size_hint=(.001, .001))

    newQuestionBtn = Button(text='New Question',
                            size_hint=(.1, .08),
                            pos_hint={
                                'x': .25,
                                'y': .05
                            })
    newQuestionBtn.bind(on_release=newQuestionFunc)

    checkAnswerBtn = Button(
        text='Check Answer',
        # background_color = (1,1,1,1),
        size_hint=(.1, .08),
        pos_hint={
            'x': .65,
            'y': .05
        })
    checkAnswerBtn.bind(on_release=answerChecker)

    currFraction = questionLabel.text.split("/")
    numerator = int(currFraction[0])
    denominator = int(currFraction[1])

    width = Fl.size[0] / 5 * 3
    height = Fl.size[1] / 5 * 3

    # draws blank canvas
    with wid.canvas:
        Color(.9, .9, .9)
        rec = Rectangle(size=(width, height),
                        pos=((Fl.width / 2) - (Fl.width / 4),
                             (Fl.height / 2) - (Fl.height / 4)))

    wid.bind(pos=update_rect)
    wid.bind(size=update_rect)

    # draws smallest denominator lines
    with wid1.canvas:
        Color(.1, .1, .1)
        for x in range(1, denominator):
            line = Line(points=[(((width / denominator) * x) + Fl.size[0] / 5),
                                (Fl.height * (13 / 15)),
                                (((width / denominator) * x) + Fl.size[0] / 5),
                                (Fl.height * (5 / 18))],
                        dash_length=60,
                        dash_offset=60,
                        width=1,
                        color=(.23, .6, .2))

    wid1.bind(pos=update_line)
    wid1.bind(size=update_line)

    # draws numerator box
    with wid2.canvas:
        Color(.3, .3, .6)
        rec2 = Rectangle(size=((width / denominator) * numerator, height),
                         pos=((Fl.width / 2) - (Fl.width / 3),
                              (Fl.height / 2) - (Fl.height / 4)))

    wid2.bind(pos=update_numerator)
    wid2.bind(size=update_numerator)

    # draws slider lines
    # make this a function!!

    Fl.add_widget(logo)
    Fl.add_widget(backBtnImage)
    Fl.add_widget(backBtn)
    Fl.add_widget(slider)
    Fl.add_widget(questionLabel)
    Fl.add_widget(sliderVal)
    Fl.add_widget(newQuestionBtn)
    Fl.add_widget(checkAnswerBtn)
    Fl.add_widget(wid)
    Fl.add_widget(wid1)
    Fl.add_widget(wid2)
    Fl.add_widget(mainbutton)
    def __init__(self, **kwargs):
        super(mySlider, self).__init__(**kwargs)

        self.cols = 9
        self.object1_lev_slider = Slider(min=0,
                                         max=2,
                                         orientation='vertical',
                                         value=object_level[0])
        self.object1_pos_slider = Slider(min=-pos_range,
                                         max=pos_range,
                                         orientation='vertical',
                                         value=object_pos[0])
        self.object2_lev_slider = Slider(min=0,
                                         max=2,
                                         orientation='vertical',
                                         value=object_level[1])
        self.object2_pos_slider = Slider(min=-pos_range,
                                         max=pos_range,
                                         orientation='vertical',
                                         value=object_pos[1])
        self.object3_lev_slider = Slider(min=0,
                                         max=2,
                                         orientation='vertical',
                                         value=object_level[2])
        self.object3_pos_slider = Slider(min=-pos_range,
                                         max=pos_range,
                                         orientation='vertical',
                                         value=object_pos[2])
        self.object4_lev_slider = Slider(min=0,
                                         max=2,
                                         orientation='vertical',
                                         value=object_level[3])
        self.object4_pos_slider = Slider(min=-pos_range,
                                         max=pos_range,
                                         orientation='vertical',
                                         value=object_pos[3])
        self.object5_lev_slider = Slider(min=0,
                                         max=2,
                                         orientation='vertical',
                                         value=object_level[4])
        self.object5_pos_slider = Slider(min=-pos_range,
                                         max=pos_range,
                                         orientation='vertical',
                                         value=object_pos[4])
        self.object6_lev_slider = Slider(min=0,
                                         max=2,
                                         orientation='vertical',
                                         value=object_level[5])
        self.object6_pos_slider = Slider(min=-pos_range,
                                         max=pos_range,
                                         orientation='vertical',
                                         value=object_pos[5])
        self.object7_lev_slider = Slider(min=0,
                                         max=2,
                                         orientation='vertical',
                                         value=object_level[6])
        self.object7_pos_slider = Slider(min=-pos_range,
                                         max=pos_range,
                                         orientation='vertical',
                                         value=object_pos[6])
        self.object8_lev_slider = Slider(min=0,
                                         max=2,
                                         orientation='vertical',
                                         value=object_level[7])
        self.object8_pos_slider = Slider(min=-pos_range,
                                         max=pos_range,
                                         orientation='vertical',
                                         value=object_pos[7])

        self.btn_toggle_record = ToggleButton(text="Reading", state='normal')
        self.btn_toggle_record_mode = ToggleButton(text="Writing to all",
                                                   state='normal')
        self.btn_toggle_renderer = ToggleButton(text="Playing reference",
                                                state='normal')
        self.btn_play = Button(text="Restart clip")

        self.object1_lev_slider.bind(value=self.set_object1_level)
        self.object1_pos_slider.bind(value=self.set_object1_pos)
        self.object2_lev_slider.bind(value=self.set_object2_level)
        self.object2_pos_slider.bind(value=self.set_object2_pos)
        self.object3_lev_slider.bind(value=self.set_object3_level)
        self.object3_pos_slider.bind(value=self.set_object3_pos)
        self.object4_lev_slider.bind(value=self.set_object4_level)
        self.object4_pos_slider.bind(value=self.set_object4_pos)
        self.object5_lev_slider.bind(value=self.set_object5_level)
        self.object5_pos_slider.bind(value=self.set_object5_pos)
        self.object6_lev_slider.bind(value=self.set_object6_level)
        self.object6_pos_slider.bind(value=self.set_object6_pos)
        self.object7_lev_slider.bind(value=self.set_object7_level)
        self.object7_pos_slider.bind(value=self.set_object7_pos)
        self.object8_lev_slider.bind(value=self.set_object8_level)
        self.object8_pos_slider.bind(value=self.set_object8_pos)

        self.btn_toggle_record.bind(state=self.switch_record)
        self.btn_toggle_record_mode.bind(state=self.switch_record_mode)
        self.btn_toggle_renderer.bind(state=self.switch_renderer)
        self.btn_play.bind(on_press=self.play)
        self.add_widget(Label(text=''))
        self.add_widget(Label(text='[b]Boy[/b]', markup=True))
        self.add_widget(Label(text='[b]Creature voice[/b]', markup=True))
        self.add_widget(Label(text='[b]Creature feet[/b]', markup=True))
        self.add_widget(Label(text='[b]Feet landing[/b]', markup=True))
        self.add_widget(Label(text='[b]Creaking[/b]', markup=True))
        self.add_widget(Label(text='[b]Bird[/b]', markup=True))
        self.add_widget(Label(text='[b]Music[/b]', markup=True))
        self.add_widget(Label(text='[b]Atmos[/b]', markup=True))

        self.add_widget(Label(text='[b]Level:[/b]', markup=True))
        self.add_widget(self.object1_lev_slider)
        self.add_widget(self.object2_lev_slider)
        self.add_widget(self.object3_lev_slider)
        self.add_widget(self.object4_lev_slider)
        self.add_widget(self.object5_lev_slider)
        self.add_widget(self.object6_lev_slider)
        self.add_widget(self.object7_lev_slider)
        self.add_widget(self.object8_lev_slider)

        self.add_widget(Label(text='[b]Position:[/b]', markup=True))
        self.add_widget(self.object1_pos_slider)
        self.add_widget(self.object2_pos_slider)
        self.add_widget(self.object3_pos_slider)
        self.add_widget(self.object4_pos_slider)
        self.add_widget(self.object5_pos_slider)
        self.add_widget(self.object6_pos_slider)
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))

        self.add_widget(self.btn_play)
        self.add_widget(self.btn_toggle_record_mode)
        self.add_widget(self.btn_toggle_renderer)
示例#3
0
    def build(self):

        self.porta = ""
        self.intensidade_m = 0
        self.intensidade_f = 0
        self.intensidade_t = 0
        self.sentido = False

        tela = BoxLayout(orientation='vertical')
        frame0 = BoxLayout(orientation='horizontal')

        intens_lf = Slider(min=0,
                           max=255,
                           value=0,
                           step=1,
                           orientation='vertical')
        self.btn_luz_frente = Button(text='OFF', background_color=red)
        lb_luz_frente = Label(text='Controle da Luz Dianteira',
                              font_size=fonte)
        frame0.add_widget(lb_luz_frente)
        frame0.add_widget(self.btn_luz_frente)
        frame0.add_widget(intens_lf)
        intens_lf.bind(value=self.OnSliderValueChange_f)

        frame1 = BoxLayout(orientation='horizontal')

        intens_tz = Slider(min=0,
                           max=255,
                           value=0,
                           step=1,
                           orientation='vertical')
        self.btn_luz_traz = Button(text='OFF', background_color=red)
        lb_luz_traz = Label(text='Controle da Luz Trazeira', font_size=fonte)
        frame1.add_widget(lb_luz_traz)
        frame1.add_widget(self.btn_luz_traz)
        frame1.add_widget(intens_tz)
        intens_tz.bind(value=self.OnSliderValueChange_t)

        frame2 = BoxLayout(orientation='horizontal')

        velocidade = Slider(min=0,
                            max=255,
                            value=0,
                            step=1,
                            orientation='vertical')
        self.btn_motor = Button(text='OFF', background_color=red)
        lb_motor = Label(text='Controle do Motor', font_size=fonte)
        self.btn_sentido = Button(text='Frente',
                                  background_color=yellow,
                                  on_release=self.controlasentido)
        frame2.add_widget(lb_motor)
        frame2.add_widget(self.btn_motor)
        frame2.add_widget(velocidade)
        frame2.add_widget(self.btn_sentido)
        velocidade.bind(value=self.OnSliderValueChange_m)

        frame3 = BoxLayout(orientation='horizontal')

        btn_sair = Button(text='Sair',
                          background_color=orange,
                          on_release=self.sair)
        frame3.add_widget(btn_sair)

        tela.add_widget(frame0)
        tela.add_widget(frame1)
        tela.add_widget(frame2)
        tela.add_widget(frame3)
        return tela
    def setup_overlay_callback(self, instance):
        selfieDir = "/home/pi/Magic_Mirror/Wardrobe_App/selfies"
        instId = instance.id
        self.reset_gui(self.GUI_widget, instance)
        try:
            self.cameraObject.play = False
            self.GUI_widget.remove_widget(self.cameraObject)
        except:
            print("Webcam is not available for removal!")
        
        #print("instance.id is",instId)
        flagName = str(instId).split("_")     #contains flag and filename
        numFiles = len(os.listdir(selfieDir))
        caseFlag = flagName[0]
        fileIndex = flagName[1]
        fileName = selfieDir+"/selfie_"+str(fileIndex)+".png"
        self.dispNewSelfie = Image(source=fileName, pos=(256,1152)) #, res=(512,384)
        self.dispNewSelfie.height = int(1.2*640) #768
        self.dispNewSelfie.width = int(1.2*480) #576
        self.GUI_widget.add_widget(self.dispNewSelfie)
        #Radio Slider
        self.adjustXPosLabel = Label(text="Adjust Shirt X-Position", pos=(60,700+200), font_size=16)
        self.adjustYPosLabel = Label(text="Adjust Shirt Y-Position", pos=(60,700+150), font_size=16)
        self.adjustWidthLabel = Label(text="Adjust Shirt Width", pos=(60,700+100), font_size=16)
        self.adjustHeightLabel = Label(text="Adjust Shirt Height", pos=(60,700+50), font_size=16)
        rangeX = self.dispNewSelfie.pos[0] + self.dispNewSelfie.width - 100 - self.dispNewSelfie.pos[0]
        self.xPosImageSlider = Slider(id="xPosSlider", pos=(230,700+200),
                                      min=-(rangeX/2), max=(rangeX/2), value=0,
                                      background_width=60, width=150)
        self.yPosImageSlider = Slider(id="yPosSlider", pos=(230,700+150),
                                      min=0, max=(self.dispNewSelfie.height-100), value=0,
                                      background_width=60, width=150)
        self.widthImageSlider = Slider(id="widthSlider", pos=(230,700+100),
                                       min=100, max=self.dispNewSelfie.width, value=100,
                                       background_width=60, width=150)
        self.heightImageSlider = Slider(id="heightSlider", pos=(230,700+50),
                                        min=100, max=self.dispNewSelfie.height, value=100,
                                        background_width=60, width=150)
        
        
        self.xPosImageSlider.bind(on_touch_up=self.adjust_overlay_picture_callback) #on_touch_down, on_touch_move, on_touch_up
        self.yPosImageSlider.bind(on_touch_up=self.adjust_overlay_picture_callback) #this event bind seems to be the most optimal
        self.widthImageSlider.bind(on_touch_move=self.adjust_overlay_picture_callback)
        self.heightImageSlider.bind(on_touch_move=self.adjust_overlay_picture_callback)
        
        self.GUI_widget.add_widget(self.adjustXPosLabel)
        self.GUI_widget.add_widget(self.adjustYPosLabel)
        self.GUI_widget.add_widget(self.adjustWidthLabel)
        self.GUI_widget.add_widget(self.adjustHeightLabel)        
        self.GUI_widget.add_widget(self.xPosImageSlider)
        self.GUI_widget.add_widget(self.yPosImageSlider)
        self.GUI_widget.add_widget(self.widthImageSlider)
        self.GUI_widget.add_widget(self.heightImageSlider)
        #Saved T-Shirt Selection
        #get listing of saved_images, iterate through one by one by latest entry
        filesByDate = self.getDateSorted_directory("/home/pi/Magic_Mirror/Wardrobe_App/saved_images")
        filesByDate = filesByDate[::-1]
        #print(filesByDate)
##        if(len(filesByDate)<10):
##            numIter = len(filesByDate)
##        else:
        numIter = 15
        #print("numIter is: ", numIter)
        for i in range(numIter):
            shirt_dir = "/home/pi/Magic_Mirror/Wardrobe_App/saved_images/"
            shirtDir = shirt_dir+filesByDate[i]
            if i<5:
                tempX = (i)*125 + 425
                tempY = 970
            elif i<10:
                tempX = (i-5)*125 + 425
                tempY = 800
            else:
                tempX = (i-10)*125 + 425
                tempY = 630
            #print("tempX is: ", tempX)
            #print(filesByDate[i])
            try:
                tshirtGallery = Button(id="shirt"+str(i), pos=(tempX,tempY), background_normal=shirtDir)
                tshirtGallery.size = (120,140)
                self.GUI_widget.add_widget(tshirtGallery)
                tshirtGallery.bind(on_press=self.overlay_picture_callback)
            except:
                print("Less than 15 shirt files!")
        return
示例#5
0
    def build(self):

        #---------------Главная сетка--------------
        bl = BoxLayout(orientation='vertical', padding=[50])
        bl2 = BoxLayout(orientation='vertical')
        gl = GridLayout(cols=2)
        bl3 = BoxLayout(orientation='vertical')
        bl4 = BoxLayout(orientation='vertical')
        #---------------Главная сетка--------------

        #----------Количество пользователей--------
        persons_text = Label(text="Количество кушающих:")
        self.persons = Label(
            text="2",
            size_hint=[1 / 8, 1],
        )
        persons_slider = Slider(
            min=2,
            max=8,
            step=1,
            value=2,
        )

        def slider_change(instance, value):
            self.persons.text = str(value)

        persons_slider.bind(value=slider_change)
        #----------Количество пользователей--------

        #---------------Сумма счета----------------
        sum_lbl = Label(text="Сумма счета:")
        self.sum_form = TextInput()
        #---------------Сумма счета----------------

        #----------------Результат-----------------
        butt = Button(text="Подсчитать", on_press=self.s4et)
        self.itog = Label(text="Каждый должен заплатить по:")
        #----------------Результат-----------------

        #---------------Инструкция-----------------
        ins_but = Button(
            text="Инструкция",
            on_press=self.ins,
        )

        self.ins_lbl = Label(size_hint=[1, 2])

        #---------------Инструкция-----------------

        bl.add_widget(
            Label(text="Распределитель счета в ресторане",
                  font_size=18,
                  max_lines=2))

        bl.add_widget(bl2)
        bl2.add_widget(persons_text)
        bl2.add_widget(gl)
        gl.add_widget(persons_slider)
        gl.add_widget(self.persons)

        bl.add_widget(bl3)
        bl3.add_widget(sum_lbl)
        bl3.add_widget(self.sum_form)

        bl.add_widget(bl4)
        bl4.add_widget(self.itog)
        bl4.add_widget(butt)

        bl.add_widget(ins_but)
        bl.add_widget(self.ins_lbl)

        return bl
示例#6
0
    def __init__(self, **kwargs):
        super(MyPaintLayout, self).__init__(**kwargs)

        # 変数・設定
        self.orientation = 'vertical'
        self.pen_width_dropdown = PenWidthDropDown()

        # ウィジェットの定義
        self.paint = MyPaintWidget()
        self.action_bar = ActionBar()
        self.action_view = ActionView()
        self.action_previous = ActionPrevious()
        self.pen_preview = ActionPenPreview()

        # 戻る・やり直しボタン
        self.back_action_button = ActionButton(
            text='Back', on_press=lambda _: self.paint.back_action())

        self.redo_action_button = ActionButton(
            text='Redo', on_press=lambda _: self.paint.redo_action())

        # 色の決定用のモーダルウィンドウ
        self.pen_color_modal_view = ModalView(size_hint=(0.8, 0.8))
        self.clr_picker = ColorPicker(size_hint_y=9)
        self.clr_picker.bind(
            color=lambda _, color: self.change_pen_color(color))
        self.pen_color_modal_layout = BoxLayout(orientation='vertical')
        self.pen_color_modal_layout.add_widget(self.clr_picker)

        self.pen_color_modal_layout.add_widget(
            Button(text='Close',
                   on_press=self.pen_color_modal_view.dismiss,
                   size_hint_y=1))
        self.pen_color_modal_view.add_widget(self.pen_color_modal_layout)

        # 全消去用のモーダルウィンドウ
        self.clear_modal_view = ModalView(size_hint=(0.7, 0.7))
        self.clear_modal_layout = BoxLayout(orientation='vertical')
        self.clear_modal_layout.add_widget(
            Label(text='Do you really want to clear?'))
        self.clear_modal_layout.add_widget(
            Button(text='Yes',
                   on_press=lambda button: [
                       self.paint.canvas.clear(),
                       self.paint.back_redo_log.clear(),
                       self.clear_modal_view.dismiss()
                   ]))
        self.clear_modal_layout.add_widget(
            Button(text='No',
                   on_press=lambda button: self.clear_modal_view.dismiss()))
        self.clear_modal_view.add_widget(self.clear_modal_layout)

        # ペンの太さのモーダルウィンドウ
        self.pen_width_modal_view = ModalView(size_hint=(0.7, 0.5))
        self.pen_width_modal_layout = BoxLayout(orientation='vertical')
        self.pen_width_label = Label(text="Width: " +
                                     str(int(self.paint.current_width)))
        self.pen_width_slider = Slider(
            min=1,
            max=20,
            value=self.paint.current_width,
            step=1,
            on_touch_move=lambda x, y: self.change_pen_width(
                self.pen_width_slider.value))
        self.pen_width_modal_layout.add_widget(self.pen_width_label)
        self.pen_width_modal_layout.add_widget(self.pen_width_slider)
        self.pen_width_modal_layout.add_widget(
            Button(text='Close', on_press=self.pen_width_modal_view.dismiss))
        self.pen_width_modal_view.add_widget(self.pen_width_modal_layout)

        self.pen_color_btn = ActionButton(
            text='Color', on_press=lambda _: self.pen_color_modal_view.open())

        self.pen_width_btn = ActionButton(
            text='width: ' + str(int(self.paint.current_width)),
            on_press=self.pen_width_modal_view.open)
        self.clear_btn = ActionButton(text='Clear',
                                      on_press=self.clear_modal_view.open)

        # ウィジェットの配置
        self.action_view.add_widget(self.action_previous)
        self.action_view.add_widget(self.pen_preview)
        self.action_view.add_widget(self.back_action_button)
        self.action_view.add_widget(self.redo_action_button)
        self.action_view.add_widget(self.pen_color_btn)
        self.action_view.add_widget(self.pen_width_btn)
        self.action_view.add_widget(self.clear_btn)
        self.action_bar.add_widget(self.action_view)
        self.add_widget(self.paint)
        self.add_widget(self.action_bar)
示例#7
0
    def __init__(self, **kwargs):
        super(RoboPad, self).__init__(**kwargs)

        # # print('running super(Gamepad, self).__init__()')

        # joystickhand and joystickrun
        self.joystickhand = Joystick(size_hint=(.5, .5),
                                     pos_hint={'x': .0, 'y': .0},
                                     sticky=True)
        self.add_widget(self.joystickhand)
        self.joystickrun = Joystick(size_hint=(.5, .5),
                                    pos_hint={'x': .5, 'y': .0})
        self.joystickhand.bind(pad=self.update_coordinates_hand)

        self.add_widget(self.joystickrun)
        self.joystickrun.bind(pad=self.update_coordinates_run)

        # add some buttons
        self.catchbutton = Button(size_hint=(.3, .1),
                                  pos_hint={'x': .7, 'y': .9},
                                  text='Catch me!')
        self.add_widget(self.catchbutton)
        self.catchbutton.bind(on_press=self.update_catch_release)

        self.dance_button = Button(size_hint=(.2, .1),
                                  pos_hint={'x': .4, 'y': .9},
                                  text='Dance!')
        self.add_widget(self.dance_button)
        self.dance_button.bind(on_press=self.update_dance)

        self.hiphop_dance = Button(size_hint=(.2, .1),
                                  pos_hint={'x': .1, 'y': .9},
                                  text='hip-hop!')
        self.add_widget(self.hiphop_dance)
        self.hiphop_dance.bind(on_press=self.update_hiphop)

        # self.reset_stat_button = Button(size_hint=(.05, .05),
        #                                 pos_hint={'x': .6, 'y': .65},
        #                                 text='reset stat')
        # self.add_widget(self.reset_stat_button)
        # self.reset_stat_button.bind(on_press=self.reset_stat_button)

        # add debug Labels
        self.debug_label = Label(size_hint=(.4, .0),
                                     pos_hint={'x': .2, 'y': .2},
                                     text='message ... ...',)  # multiline=True,)
        self.add_widget(self.debug_label)

        # self.debug_label_hand = Label(size_hint=(.2, .2),
        #                               pos_hint={'x': .1, 'y': .8},
        #                               text='message ... ...',)
        # self.add_widget(self.debug_label_hand)
        # self.debug_label_run = Label(size_hint=(.2, .2),
        #                              pos_hint={'x': .5, 'y': .8},
        #                              text='message ... ...',)  # multiline=True,)
        # self.add_widget(self.debug_label_run)

        # bind joystick



        # bind button


        self.slider_accept_command_timeout = Slider(size_hint=(.4, .03),
                                                    pos_hint={'x': .1,
                                                              'y': .9},
                                                    min=0.02,
                                                    max=0.2,
                                                    value=0.05)
        # self.add_widget(self.slider_accept_command_timeout)

        self.slider_accept_command_timeout.bind(value=self.OnSliderAcccepptCommandTiteoutValueChange)

        self.slider_velocity_factor = Slider(size_hint=(.4, .03),
                                                    pos_hint={'x': .1,
                                                              'y': .85},
                                                    min=0.01,
                                                    max=10.0,
                                                    value=0.3)
        # self.add_widget(self.slider_velocity_factor)

        self.slider_velocity_factor.bind(value=self.OnSliderVelocityFactorValueChange)

        #  not used , just place holder
        self.slider_timeout_timer_start = Slider(size_hint=(.4, .03),
                                                    pos_hint={'x': .1,
                                                              'y': .8},
                                                    min=0.02,
                                                    max=0.2,
                                                    value=0.11)
        # self.add_widget(self.slider_timeout_timer_start)

        self.slider_timeout_timer_start.bind(value=self.OnSliderTimeoutTimerStartValueChange)


        self.slider_gear_factor = Slider(size_hint=(.4, .03),
                                                    pos_hint={'x': .1,
                                                              'y': .8},
                                                    min=1,
                                                    max=5,
                                                    value=3)
        self.add_widget(self.slider_gear_factor)

        self.slider_gear_factor.bind(value=self.OnSliderGearFactorValueChange)

        self.accept_command_timeout = 0.05  # 0.6 is too short, broke app!
                            #
                            # for slow motion 0.1 ok ok
                            # for fast motiion 0.0.25 is not enough

        # self.timeout_slow = 0.14
        self.timeout_timer_start = 0.14
        self.velocity_factor = 0.3


        self.old_headx = 0.0
        self.old_handy = 0.0
        self.old_turnx = 0.0
        self.old_runy = 0.0
        self.last_command_compiled_before_send = time.time()
        self.last_command_sent_at = time.time()

        # self.current_hand_pos = {'headx': 0.0, 'handy': 0.0}
        # self.saved_hand_pos = {}
        # self.last_hand_move = {}
        # self.current_run_pos = {'turnx': 0.0, 'runy': 0.0}
        # self.saved_run_pos = {'turnx': 0.0, 'runy': 0.0}
        # self.last_run_move = {}

        self.mean_time_send_command_data = 0.0
        self.counter_send_command_data = 1
        self.counter_commands = 1

        self.dance = False
        self.hiphop = 1

        self.gear = 3

        self.robot_host = '192.168.4.1'  # hardcoded robot ip t4m net
        self.robot_port = 80

        self.current_pos = {'headx': 0.0, 'handy': 0.0, 'turnx': 0.0, 'runy': 0.0, 'gear': self.gear}
        self.saved_pos = {'headx': 0.0, 'handy': 0.0, 'turnx': 0.0, 'runy': 0.0, 'gear': self.gear}

        self.last_move = {'headx': 0.0, 'handy': 0.0, 'turnx': 0.0, 'runy': 0.0, 'gear': self.gear}

        self.saved_command = {'gear': self.gear}
        self.command_sent = True

        # self.SERVO_MIN = 35   # real servo min-max
        # self.SERVO_MAX = 125
        self.SERVO_MIN = 40     # compatible with 0.8.3.0.9
        self.SERVO_MAX = 117
        self.servo_center = self.SERVO_MAX - self.SERVO_MIN
        self.SERVO_NEAR_ZERO = 0.03
        self.SERVO_FACTOR = 1.3


        Clock.schedule_interval(self.timer_with_saved_params, self.timeout_timer_start)  # start afterburner
示例#8
0
    def build(self):
        PhoneNotesScreen = Screen(name='phonenotes')

        PhoneNotesLayout = GridLayout(cols=2,
                                      rows=5,
                                      size_hint_y=None,
                                      height=400,
                                      row_force_default=True,
                                      col_force_default=True,
                                      col_default_width=350,
                                      row_default_height=45,
                                      pos=(75, -90))

        PhoneAlarmLabel = Label(text="Medicine Alarms",
                                color=Black,
                                font_size=25,
                                font_name=DefaultFont,
                                halign='left',
                                disabled=False)
        PhoneAlarmVolume = Label(text="Alarm Volume",
                                 color=Gray,
                                 font_size=25,
                                 font_name=DefaultFont)

        PhoneMissingPillLabel = Label(text="Missed Pill Notifications",
                                      color=Black,
                                      font_size=25,
                                      font_name=DefaultFont,
                                      halign='left')
        PhoneExpirationWarningLabel = Label(
            text="Upcoming Expiration Date Notifications",
            color=Black,
            font_size=25,
            font_name=DefaultFont,
            halign='left')
        PhoneLowPillCountLabel = Label(text="Low Pill Count Notifications",
                                       color=Black,
                                       font_size=25,
                                       font_name=DefaultFont,
                                       halign='left')

        PhoneAlarmToggle = CheckBox(color=Black)
        PhoneAlarmVolumeSlider = Slider(min=0,
                                        max=100,
                                        value=50,
                                        orientation="horizontal",
                                        cursor_size=(30, 30),
                                        disabled=False)

        PhoneMissingPillWarningToggle = CheckBox(color=Black)
        PhoneExpirationWarningToggle = CheckBox(color=Black)
        PhoneLowPillCountToggle = CheckBox(color=Black)

        PhoneNotesLayout.add_widget(PhoneAlarmLabel)
        PhoneNotesLayout.add_widget(PhoneAlarmToggle)

        PhoneNotesLayout.add_widget(PhoneAlarmVolume)
        PhoneNotesLayout.add_widget(PhoneAlarmVolumeSlider)

        PhoneNotesLayout.add_widget(PhoneMissingPillLabel)
        PhoneNotesLayout.add_widget(PhoneMissingPillWarningToggle)

        PhoneNotesLayout.add_widget(PhoneExpirationWarningLabel)
        PhoneNotesLayout.add_widget(PhoneExpirationWarningToggle)

        PhoneNotesLayout.add_widget(PhoneLowPillCountLabel)
        PhoneNotesLayout.add_widget(PhoneLowPillCountToggle)

        PhoneNotesScreen.add_widget(PhoneNotesLayout)

        def PhonerefreshAlarmState():
            if PhoneAlarmToggle.state == 'down':
                PhoneAlarmVolume.color = Black
                PhoneAlarmVolumeSlider.set_disabled(False)
            else:
                PhoneAlarmVolume.color = Gray
                PhoneAlarmVolumeSlider.set_disabled(True)
                pass

        Clock.schedule_interval(lambda dt: PhonerefreshAlarmState(), 0.5)
        return PhoneNotesScreen
示例#9
0
    def build(self):
        DeviceNotesScreen = Screen(name='devicesnotes')

        DeviceNotesLayout = GridLayout(cols=2,
                                       rows=6,
                                       size_hint_y=None,
                                       height=400,
                                       row_force_default=True,
                                       col_force_default=True,
                                       col_default_width=350,
                                       row_default_height=35,
                                       pos=[50, -100])

        AlarmLabel = Label(text="Medicine Alarms",
                           color=Black,
                           font_size=25,
                           font_name=DefaultFont,
                           halign='left',
                           disabled=False)
        AlarmVolume = Label(text="Alarm Volume",
                            color=Gray,
                            font_size=25,
                            font_name=DefaultFont)

        MissingPillLabel = Label(text="Missed Pill Notifications",
                                 color=Black,
                                 font_size=25,
                                 font_name=DefaultFont,
                                 halign='left')
        BatteryWarningLabel = Label(text="Low Battery Notifications",
                                    color=Black,
                                    font_size=25,
                                    font_name=DefaultFont)
        ExpirationWarningLabel = Label(
            text="Upcoming Expiration Date Notifications",
            color=Black,
            font_size=25,
            font_name=DefaultFont,
            halign='left')
        LowPillCountLabel = Label(text="Low Pill Count Notifications",
                                  color=Black,
                                  font_size=25,
                                  font_name=DefaultFont,
                                  halign='left')

        AlarmToggle = CheckBox(color=Black)
        AlarmVolumeSlider = Slider(min=0,
                                   max=100,
                                   value=50,
                                   orientation="horizontal",
                                   cursor_size=(30, 30),
                                   disabled=False)

        MissingPillWarningToggle = CheckBox(color=Black)
        BatteryWarningToggle = CheckBox(color=Black)
        ExpirationWarningToggle = CheckBox(color=Black)
        LowPillCountToggle = CheckBox(color=Black)

        DeviceNotesLayout.add_widget(AlarmLabel)
        DeviceNotesLayout.add_widget(AlarmToggle)

        DeviceNotesLayout.add_widget(AlarmVolume)
        DeviceNotesLayout.add_widget(AlarmVolumeSlider)

        DeviceNotesLayout.add_widget(MissingPillLabel)
        DeviceNotesLayout.add_widget(MissingPillWarningToggle)

        DeviceNotesLayout.add_widget(BatteryWarningLabel)
        DeviceNotesLayout.add_widget(BatteryWarningToggle)

        DeviceNotesLayout.add_widget(ExpirationWarningLabel)
        DeviceNotesLayout.add_widget(ExpirationWarningToggle)

        DeviceNotesLayout.add_widget(LowPillCountLabel)
        DeviceNotesLayout.add_widget(LowPillCountToggle)

        DeviceNotesScreen.add_widget(DeviceNotesLayout)

        def DevicerefreshAlarmState():
            if AlarmToggle.state == 'down':
                AlarmVolume.color = Black
                AlarmVolumeSlider.set_disabled(False)
            else:
                AlarmVolume.color = Gray
                AlarmVolumeSlider.set_disabled(True)
                pass

        Clock.schedule_interval(lambda dt: DevicerefreshAlarmState(), 0.5)
        return DeviceNotesScreen
示例#10
0
def song_btn(main_lyt, self):
    global other_layout, len_btn, len_btn2
    global curr_song, pre_song, pre_sound, song_counter, bt2
    global len_slid, sh, val_pre
    curr_song = index
    #    file3 = File(songlist[index][0])
    #    song_length = float(file3.info.pprint().split(',')[-1:][0][:-8])
    #    time = song_length/60
    #    minute = int(time)
    #    min_str = "{0:0=2d}".format(minute)
    #    second = int(round((time - minute)*60, 2))
    #    sec_str = "{0:0=2d}".format(second)
    ########################################################################
    if (other_layout == True):
        grid_2 = GridLayout(cols=3,
                            size_hint=(1, 0.05),
                            row_force_default=True,
                            row_default_height=40,
                            opacity=1)
        b1 = Label(text='00:00', size_hint_x=None, width=main_lyt.width * 0.15)
        grid_2.add_widget(b1)
        slid = Slider(min=0,
                      max=100,
                      cursor_width='8dp',
                      cursor_height='8dp',
                      value_track=True,
                      background_width='8dp',
                      value_track_width='0.5dp',
                      value_track_color=[0, 1, 1, 1],
                      step=1)
        slid.pos = (1, 100)
        grid_2.add_widget(slid)
        b2 = Label(text='min' + ':' + 'sec',
                   size_hint_x=None,
                   width=main_lyt.width * 0.15)
        grid_2.add_widget(b2)

        len_btn = b2
        len_btn2 = b1
        len_slid = slid

        slid.bind(value=slid_bind)

        main_lyt.add_widget(grid_2)

        ###################################################################################
        fl = FloatLayout(size_hint=(1, 0.1), opacity=1)

        bt1 = ImgButton_pre(prev_normal_img, prev_press_img, id='pre')
        bt1.bind(on_press=partial(previous_song))
        fl.add_widget(bt1)

        bt2 = ImgToggleButton_play(play_img, pause_img, id='pp')
        bt2.bind(on_press=partial(play_pause))
        fl.add_widget(bt2)

        bt3 = ImgButton_next(next_normal_img, next_press_img, id='next')
        bt3.bind(on_press=partial(next_song))
        fl.add_widget(bt3)

        main_lyt.add_widget(fl)
        other_layout = False

    len_btn.text = min_str + ':' + sec_str
    len_slid.min = 0
    len_slid.value = 0
    len_slid.max = int(song_length)
    len_btn2.text = '00:00'

    try:
        print(songlist[pre_song][0] + '   :    stoped')
        bt2.state = 'normal'
        ImgToggleButton_play.on_state(bt2, 'fwfwf', 'normal')
        pre_sound.stop()
        pre_sound.unload()
        pre_song = -1
    except:
        pre_song = -1
    if (curr_song != pre_song):
        if (self.state == 'down'):
            sound = SoundLoader.load(songlist[index][0])  # songlist[index]
            bt2.state = 'down'
            ImgToggleButton_play.on_state(bt2, 'fwfwf', 'down')
            if (sound != None):
                val_pre = -1
                slid_func(sound, len_slid, len_btn2)
                sound.play()
                pre_song = index
                song_counter = index
                pre_sound = sound
                songlist[pre_song][1].state = 'down'
                print(songlist[pre_song][0] + '   :    playing')
示例#11
0
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.cols = 1

        self.total_document = 0
        self.sheet_detection = False
        self.rotation_value = 0
        self.total_page = 0
        self.threshold_detection = False
        self.threshold_value = 85
        self.smooth_values = 1

        # Rotation
        self.label_rotate = Label(text="Rotation",
                                  pos_hint={
                                      "x": .05,
                                      "y": .9
                                  },
                                  size_hint=(.9, .1),
                                  font_size='20sp')
        self.add_widget(self.label_rotate)

        self.btn_rotate_clockwise = Button(text="Droite",
                                           pos_hint={
                                               "x": .5,
                                               "y": .87
                                           },
                                           size_hint=(.45, .05))
        self.btn_rotate_clockwise.bind(on_press=self.rotate_clockwise)
        self.add_widget(self.btn_rotate_clockwise)

        self.btn_rotate_counter_clockwise = Button(text="Gauche",
                                                   pos_hint={
                                                       "x": .05,
                                                       "y": .87
                                                   },
                                                   size_hint=(.45, .05))
        self.btn_rotate_counter_clockwise.bind(
            on_press=self.rotate_counter_clockwise)

        self.add_widget(self.btn_rotate_counter_clockwise)

        # Sheet Detection
        self.label_sheet_detection = Label(text="Détection de feuille",
                                           pos_hint={
                                               "x": .05,
                                               "y": .77
                                           },
                                           size_hint=(.9, .1),
                                           font_size='20sp',
                                           halign="left",
                                           valign="middle")
        self.label_sheet_detection.bind(
            size=self.label_sheet_detection.setter('text_size'))
        self.add_widget(self.label_sheet_detection)

        self.checkbox_sheet_detection = CheckBox(pos_hint={
            "x": .9,
            "y": .77
        },
                                                 size_hint=(.05, .1))
        self.add_widget(self.checkbox_sheet_detection)
        self.checkbox_sheet_detection.bind(active=self.on_checkbox_active)

        # threshold
        self.threshold_active_label = Label(text="Zone de détection",
                                            pos_hint={
                                                "x": .05,
                                                "y": .70
                                            },
                                            size_hint=(.9, .1),
                                            font_size='20sp',
                                            halign="left",
                                            valign="middle")
        self.threshold_active_label.bind(
            size=self.threshold_active_label.setter('text_size'))
        self.add_widget(self.threshold_active_label)

        self.checkbox_threshold = CheckBox(pos_hint={
            "x": .9,
            "y": .70
        },
                                           size_hint=(.05, .1))
        self.add_widget(self.checkbox_threshold)
        self.checkbox_threshold.bind(active=self.checkbox_threshold_active)

        self.threshold_slider = Slider(min=0,
                                       max=100,
                                       value=self.threshold_value,
                                       pos_hint={
                                           "x": .05,
                                           "y": .65
                                       },
                                       size_hint=(.9, .1))
        self.threshold_slider.disabled = True
        self.threshold_slider.bind(value=self.slider_threshold_changed)
        self.add_widget(self.threshold_slider)

        # Smooth values
        self.label_smooth_values = Label(text="Lisser les données",
                                         pos_hint={
                                             "x": .05,
                                             "y": .55
                                         },
                                         size_hint=(.9, .1),
                                         font_size='20sp')
        self.add_widget(self.label_smooth_values)

        self.smooth_values_slider = Slider(min=1,
                                           max=50,
                                           value=self.smooth_values,
                                           pos_hint={
                                               "x": .05,
                                               "y": .50
                                           },
                                           size_hint=(.9, .1))
        self.smooth_values_slider.bind(value=self.slider_smooth_values_changed)
        self.add_widget(self.smooth_values_slider)

        # change camera
        self.label_camera_change = Label(text="Caméra numéro ",
                                         pos_hint={
                                             "x": .05,
                                             "y": .35
                                         },
                                         size_hint=(.9, .1),
                                         font_size='20sp',
                                         halign="left",
                                         valign="middle")
        self.label_camera_change.bind(
            size=self.label_camera_change.setter('text_size'))
        self.add_widget(self.label_camera_change)

        self.input_camera = IntInput(font_size='20sp',
                                     pos_hint={
                                         "x": .50,
                                         "y": .37
                                     },
                                     size_hint=(.1, .05))
        self.add_widget(self.input_camera)

        # Set total to 0
        self.btn_set_to_zero = Button(text="Mettre points à 0",
                                      pos_hint={
                                          "x": .05,
                                          "y": .3
                                      },
                                      size_hint=(.45, .05))
        self.btn_set_to_zero.bind(on_press=self.set_to_zero)
        self.add_widget(self.btn_set_to_zero)

        # add selected points
        self.btn_add_point = Button(text="Ajouter :",
                                    pos_hint={
                                        "x": .5,
                                        "y": .3
                                    },
                                    size_hint=(.3, .05))
        self.btn_add_point.bind(on_press=self.add_point)
        self.add_widget(self.btn_add_point)

        self.input_points = FloatInput(font_size='20sp',
                                       pos_hint={
                                           "x": .80,
                                           "y": .3
                                       },
                                       size_hint=(.15, .05))
        self.add_widget(self.input_points)
        # Total
        self.label_total_page = Label(text="Total pour cette page : 0",
                                      pos_hint={
                                          "x": .05,
                                          "y": .2
                                      },
                                      size_hint=(.9, .1),
                                      font_size='20sp',
                                      halign="left",
                                      valign="middle")
        self.label_total_page.bind(
            size=self.label_total_page.setter('text_size'))
        self.add_widget(self.label_total_page)

        self.label_total_document = Label(text="Total pour ce document : 0",
                                          pos_hint={
                                              "x": .05,
                                              "y": .15
                                          },
                                          size_hint=(.9, .1),
                                          font_size='20sp',
                                          halign="left",
                                          valign="middle")
        self.label_total_document.bind(
            size=self.label_total_document.setter('text_size'))
        self.add_widget(self.label_total_document)

        self.btn_add_total = Button(
            text="Ajouter total!",
            pos_hint={
                "x": .05,
                "y": .05
            },
            size_hint=(.9, .1))  # background_color=(.76, .89, .93, 1)
        self.btn_add_total.bind(on_press=self.add_total)
        self.add_widget(self.btn_add_total)
示例#12
0
    def __init__(self, **kwargs):
        super(mySlider, self).__init__(**kwargs)

        self.cols = 8
        self.object1_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[0])
        self.object1_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[0])
        self.object2_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[1])
        self.object2_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[1])
        self.object3_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[2])
        self.object3_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[2])
        self.object4_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[3])
        self.object4_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[3])
        self.object5_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[4])
        self.object5_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[4])
        self.object6_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[5])
        self.object6_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[5])
        self.object7_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[6])
        self.object7_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[6])
        #self.object8_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[7])
        #self.object8_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[7])
        # self.object9_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[8])
        # self.object9_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[8])
        # self.object10_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[9])
        # self.object10_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[9])
        # self.object11_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[10])
        # self.object11_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[10])
        # self.object12_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[11])
        # self.object12_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[11])
        # self.object13_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[12])
        # self.object13_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[13])
        # self.object14_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[13])
        # self.object14_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[14])
        # self.object15_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[14])
        # self.object15_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical',value=object_pos[15])
        # self.object16_lev_slider = Slider(min=0, max=2,orientation='vertical',value=object_level[15])
        # self.object16_pos_slider = Slider(min=-pos_range, max=pos_range,orientation='vertical')
        self.btn_toggle_record = ToggleButton(text = "Reading", state = 'normal')
        self.btn_toggle_record_mode = ToggleButton(text = "Write to all", state = 'normal')
        self.btn_toggle_renderer = ToggleButton(text = "Reference",state = 'normal')
        self.btn_play = Button(text = "PLAY") 
        self.btn_stop = Button(text = "STOP")
        self.btn_quit = Button(text = "QUIT")       
        self.object1_lev_slider.bind(value=self.set_object1_level)
        self.object1_pos_slider.bind(value=self.set_object1_pos)
        self.object2_lev_slider.bind(value=self.set_object2_level)
        self.object2_pos_slider.bind(value=self.set_object2_pos)
        self.object3_lev_slider.bind(value=self.set_object3_level)
        self.object3_pos_slider.bind(value=self.set_object3_pos)
        self.object4_lev_slider.bind(value=self.set_object4_level)
        self.object4_pos_slider.bind(value=self.set_object4_pos)
        self.object5_lev_slider.bind(value=self.set_object5_level)
        self.object5_pos_slider.bind(value=self.set_object5_pos)
        self.object6_lev_slider.bind(value=self.set_object6_level)
        self.object6_pos_slider.bind(value=self.set_object6_pos)
        self.object7_lev_slider.bind(value=self.set_object7_level)
        self.object7_pos_slider.bind(value=self.set_object7_pos)
        #self.object8_lev_slider.bind(value=self.set_object8_level)
        #self.object8_pos_slider.bind(value=self.set_object8_pos)
        # self.object9_lev_slider.bind(value=self.set_object9_level)
        # self.object9_pos_slider.bind(value=self.set_object9_pos)
        # self.object10_lev_slider.bind(value=self.set_object10_level)
        # self.object10_pos_slider.bind(value=self.set_object10_pos)
        # self.object11_lev_slider.bind(value=self.set_object11_level)
        # self.object11_pos_slider.bind(value=self.set_object11_pos)
        # self.object12_lev_slider.bind(value=self.set_object12_level)
        # self.object12_pos_slider.bind(value=self.set_object12_pos)
        # self.object13_lev_slider.bind(value=self.set_object13_level)
        # self.object13_pos_slider.bind(value=self.set_object13_pos)
        # self.object14_lev_slider.bind(value=self.set_object14_level)
        # self.object14_pos_slider.bind(value=self.set_object14_pos)
        # self.object15_lev_slider.bind(value=self.set_object15_level)
        # self.object15_pos_slider.bind(value=self.set_object15_pos)
        # self.object16_lev_slider.bind(value=self.set_object16_level)
        # self.object16_pos_slider.bind(value=self.set_object16_pos)
        self.btn_toggle_record.bind(state=self.switch_record)
        self.btn_toggle_record_mode.bind(state=self.switch_record_mode)
        self.btn_toggle_renderer.bind(state=self.switch_renderer)
        self.btn_play.bind(on_press = self.play)
        self.btn_stop.bind(on_press = self.stop)
        self.btn_quit.bind(on_press = self.quit)
        
        #self.add_widget(self.btn_quit)
        self.add_widget(Label(text=''))
        self.add_widget(Label(text='[b]Narrator[/b]',markup = True))
        self.add_widget(Label(text='[b]Boy[/b]',markup = True))
        #self.add_widget(Label(text='[b]Amelia[/b]',markup = True))
        self.add_widget(Label(text='[b]Creature voice[/b]',markup = True))
        #self.add_widget(Label(text='[b]Creature feet[/b]',markup = True))
        #self.add_widget(Label(text='[b]Feet landing[/b]',markup = True))
        #self.add_widget(Label(text='[b]FX2[/b]',markup = True))
        #self.add_widget(Label(text='[b]FX3[/b]',markup = True))
        #self.add_widget(Label(text='[b]FX4[/b]',markup = True))
        #self.add_widget(Label(text='[b]FX5[/b]',markup = True))
        #self.add_widget(Label(text='[b]FX6[/b]',markup = True))
        #self.add_widget(Label(text='[b]FX7[/b]',markup = True))
        self.add_widget(Label(text='[b]Splashes[/b]',markup = True))
        self.add_widget(Label(text='[b]River[/b]',markup = True))
        self.add_widget(Label(text='[b]Music[/b]',markup = True))
        self.add_widget(Label(text='[b]Atmos[/b]',markup = True))
        # self.add_widget(Label(text='[b]Reverb[/b]',markup = True))

        self.add_widget(Label(text='[b]Level:[/b]',markup = True))
        self.add_widget(self.object1_lev_slider)        
        self.add_widget(self.object2_lev_slider)
        self.add_widget(self.object3_lev_slider)
        self.add_widget(self.object4_lev_slider)
        self.add_widget(self.object5_lev_slider)
        self.add_widget(self.object6_lev_slider)
        self.add_widget(self.object7_lev_slider)
        #self.add_widget(self.object8_lev_slider)
        # self.add_widget(self.object9_lev_slider)
        # self.add_widget(self.object10_lev_slider)
        # self.add_widget(self.object11_lev_slider)
        # self.add_widget(self.object12_lev_slider)
        # self.add_widget(self.object13_lev_slider)
        # self.add_widget(self.object14_lev_slider)
        # self.add_widget(self.object15_lev_slider)
        # self.add_widget(self.object16_lev_slider)

        self.add_widget(Label(text='[b]Position:[/b]',markup = True))
        self.add_widget(self.object1_pos_slider)
        self.add_widget(self.object2_pos_slider)
        self.add_widget(self.object3_pos_slider)
        self.add_widget(self.object4_pos_slider)
        self.add_widget(self.object5_pos_slider)
        #self.add_widget(self.object6_pos_slider)
        # self.add_widget(self.object7_pos_slider)
        # self.add_widget(self.object8_pos_slider)
        # self.add_widget(self.object9_pos_slider)
        # self.add_widget(self.object10_pos_slider)
        # self.add_widget(self.object11_pos_slider)
        # self.add_widget(self.object12_pos_slider)
        # self.add_widget(self.object13_pos_slider)
        # self.add_widget(self.object14_pos_slider)
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        # self.add_widget(Label(text=''))

        self.add_widget(self.btn_toggle_record_mode)
        self.add_widget(Label(text=''))

        self.add_widget(self.btn_toggle_record)
        self.add_widget(self.btn_toggle_renderer)
        self.add_widget(self.btn_play)
        self.add_widget(self.btn_stop)
示例#13
0
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        print("MainScreen")
        my_general.plt.close()

        gridlayout = self.gridlayout
        boxlayout_col_0 = BoxLayout(orientation="vertical", spacing=10)
        boxlayout_row_0 = BoxLayout(orientation="horizontal", spacing=10)
        boxlayout_col_1 = BoxLayout(orientation="vertical", spacing=10)
        boxlayout_row_1 = BoxLayout(orientation="horizontal", spacing=10)

        boxlayout_col_0.add_widget(
            Button(
                text="Glass",
                background_color=[.50, 0, 0, 1],
                size_hint_x=None,
                width=250,
            ))

        boxlayout_col_0_0_0 = self.boxlayout_col_0_0_0
        boxlayout_col_0_1 = BoxLayout(orientation="vertical", spacing=2)
        boxlayout_row_0_0 = BoxLayout(orientation="horizontal", spacing=2)
        slider = Slider(orientation='vertical',
                        min=0,
                        max=len(my_core.result_str_ticker),
                        value=len(my_core.result_str_ticker),
                        step=1,
                        value_track=True,
                        value_track_color=[1, 0, 0, 1])

        boxlayout_col_0_0 = GridLayout(cols=1, spacing=2, size_hint_y=5)
        boxlayout_col_0_0.bind(
            minimum_height=boxlayout_col_0_0.setter('height'))
        i = 0
        while i < len(my_core.result_str_ticker):
            boxlayout_col_0_0.add_widget(
                Button(
                    text=my_core.result_str_ticker[i],
                    font_size='14',
                    background_color=[0, .50, 0, 1],
                    size_hint_x=None,
                    height=10,
                    width=250,
                    on_press=partial(self._on_press_change_ticker,
                                     my_core.result_str_ticker[i]),
                ))

            i += 1

        boxlayout_col_0_1.add_widget(slider)
        boxlayout_col_0_1.size_hint_x = 0.05

        scroll_view = ScrollView()
        scroll_view.add_widget(boxlayout_col_0_0)

        boxlayout_row_0_0.add_widget(scroll_view)
        boxlayout_row_0_0.add_widget(boxlayout_col_0_1)
        boxlayout_col_0.add_widget(boxlayout_row_0_0)

        gridlayout.add_widget(boxlayout_col_0)

        boxlayout_row_0.add_widget(
            Button(
                text="Doubler Screen -->",
                background_color=[0, 1, 0, 1],
                on_press=self._on_press_button_to_doubler_screen,
                width=250,
            ))

        boxlayout_row_0.add_widget(
            Button(
                text="Sign out",
                background_color=[1, 0, 0, 1],
                on_press=self._on_press_button_sign_out,
                width=250,
            ))
        boxlayout_row_0.height = 50
        boxlayout_row_0.size_hint = [1, 0.1]
        boxlayout_col_1.add_widget(boxlayout_row_0)

        boxlayout_col_0_0_0.add_widget(self.current_graph)

        boxlayout_col_1.add_widget(boxlayout_col_0_0_0)
        boxlayout_col_1.size_hint_x = None
        boxlayout_col_1.size_hint_y = 200
        boxlayout_col_1.width = 1750
        boxlayout_col_1.height = 700
        gridlayout.add_widget(boxlayout_col_1)

        gridlayout.add_widget(
            Button(
                text="Deferred orders",
                background_color=[0, 0, .50, 1],
                size_hint_x=None,
                width=250,
            ))

        boxlayout_row_1.add_widget(
            Button(
                text="Active orders",
                background_color=[0, .50, 0, 1],
            ))

        boxlayout_row_1.add_widget(
            Button(
                text="Explanations for notes",
                background_color=[0, 0, .50, 1],
            ))
        boxlayout_row_1.size_hint = [1, None]
        gridlayout.add_widget(boxlayout_row_1)

        self.add_widget(gridlayout)
示例#14
0
    def __init__(self, **kwargs):
        super(RoboPad, self).__init__(**kwargs)

        # # print('running super(Gamepad, self).__init__()')

        # joystickhand and joystickrun
        self.joystickhand = Joystick(size_hint=(.45, .45),
                                     pos_hint={'x': 0.0, 'y': .2},
                                     sticky=True)
        self.add_widget(self.joystickhand)
        self.joystickrun = Joystick(size_hint=(.45, .45),
                                    pos_hint={'x': 0.6, 'y': .2})
        self.add_widget(self.joystickrun)

        # add some buttons
        self.catchbutton = Button(size_hint=(.15, .15),
                                  pos_hint={'x': .8, 'y': .65},
                                  text='Catch me!')
        self.add_widget(self.catchbutton)
        self.catchbutton.bind(on_press=self.update_catch_release)

        # self.reset_stat_button = Button(size_hint=(.05, .05),
        #                                 pos_hint={'x': .6, 'y': .65},
        #                                 text='reset stat')
        # self.add_widget(self.reset_stat_button)
        # self.reset_stat_button.bind(on_press=self.reset_stat_button)

        # add debug Labels
        self.debug_label = Label(size_hint=(.4, .0),
                                     pos_hint={'x': .2, 'y': .2},
                                     text='message ... ...',)  # multiline=True,)
        self.add_widget(self.debug_label)
        # self.debug_label_hand = Label(size_hint=(.2, .2),
        #                               pos_hint={'x': .1, 'y': .8},
        #                               text='message ... ...',)
        # self.add_widget(self.debug_label_hand)
        # self.debug_label_run = Label(size_hint=(.2, .2),
        #                              pos_hint={'x': .5, 'y': .8},
        #                              text='message ... ...',)  # multiline=True,)
        # self.add_widget(self.debug_label_run)

        # bind joystick
        self.joystickrun.bind(pad=self.update_coordinates_run)
        self.joystickhand.bind(pad=self.update_coordinates_hand)

        # bind button


        self.slider_accept_command_timeout = Slider(size_hint=(.4, .05),
                                                    pos_hint={'x': .1,
                                                              'y': .9},
                                                    min=0.01,
                                                    max=0.1,
                                                    value=0.05)
        self.add_widget(self.slider_accept_command_timeout)
        self.slider_accept_command_timeout.bind(value=self.OnSliderAcccepptCommandTiteoutValueChange)

        self.slider_velocity_factor = Slider(size_hint=(.4, .05),
                                                    pos_hint={'x': .1,
                                                              'y': .85},
                                                    min=0.01,
                                                    max=10.0,
                                                    value=0.3)
        self.add_widget(self.slider_velocity_factor)
        self.slider_velocity_factor.bind(value=self.OnSliderVelocityFactorValueChange)


        self.accept_command_timeout = 0.05  # 0.6 is too short, broke app!
                            #
                            # for slow motion 0.1 ok ok
                            # for fast motiion 0.0.25 is not enough
        self.timeout_slow = 0.14
        self.velocity_factor = 0.3


        self.old_headx = 0.0
        self.old_handy = 0.0
        self.old_turnx = 0.0
        self.old_runy = 0.0
        self.last_command_sent_at = 0.0

        # self.current_hand_pos = {'headx': 0.0, 'handy': 0.0}
        # self.saved_hand_pos = {}
        # self.last_hand_move = {}
        # self.current_run_pos = {'turnx': 0.0, 'runy': 0.0}
        # self.saved_run_pos = {'turnx': 0.0, 'runy': 0.0}
        # self.last_run_move = {}

        self.current_pos = {'headx': 0.0, 'handy': 0.0, 'turnx': 0.0, 'runy': 0.0}
        self.saved_pos = {'headx': 0.0, 'handy': 0.0, 'turnx': 0.0, 'runy': 0.0}

        self.last_move = {'headx': 0.0, 'handy': 0.0, 'turnx': 0.0, 'runy': 0.0}



        self.mean_time_send_command_data = 0.05
        self.counter_send_command_data = 1
        self.counter_commands = 1




        Clock.schedule_interval(self.timer, self.timeout_slow)
示例#15
0
    def __init__(self, *args, **kwargs):
        super(Container, self).__init__(*args, **kwargs)
        self.orientation = 'vertical'

        # Get the initial status for our lights and use it to set right values for our GUI components
        tvstandLight = Light('1')
        kitchenLight = Light('2')
        officeLight = Light('3')

        label1 = Label(text="Tv-taso")
        sw1 = Switch(id='1', active=tvstandLight.state['on'] or False)
        slide1 = Slider(id='1',
                        min=1,
                        step=1,
                        max=254,
                        value=tvstandLight.state['bri'] or 50)
        btn1 = Button(id='1',
                      text="Select Color",
                      background_color=self.convert_xy_to_rgb(
                          tvstandLight.state['xy']))

        label2 = Label(text="Keittiö")
        sw2 = Switch(id='2', active=kitchenLight.state['on'] or False)
        slide2 = Slider(id='2',
                        min=1,
                        step=1,
                        max=254,
                        value=kitchenLight.state['bri'] or 50)
        btn2 = Button(id='2',
                      text="Select Color",
                      background_color=self.convert_xy_to_rgb(
                          kitchenLight.state['xy']))

        label3 = Label(text="Työpöytä")
        sw3 = Switch(id='3', active=officeLight.state['on'] or False)
        slide3 = Slider(id='3',
                        step=1,
                        min=1,
                        max=254,
                        value=officeLight.state['bri'] or 50)
        btn3 = Button(id='3',
                      text="Select Color",
                      background_color=self.convert_xy_to_rgb(
                          officeLight.state['xy']))

        # Bind actions for our buttons and sliders
        sw1.bind(active=self.toggle_light)
        sw2.bind(active=self.toggle_light)
        sw3.bind(active=self.toggle_light)

        slide1.fbind('value', self.select_brightness)
        slide2.fbind('value', self.select_brightness)
        slide3.fbind('value', self.select_brightness)

        btn1.bind(on_release=self.select_color)
        btn2.bind(on_release=self.select_color)
        btn3.bind(on_release=self.select_color)

        # Render stuff
        self.add_widget(label1)
        self.add_widget(sw1)
        self.add_widget(slide1)
        self.add_widget(btn1)

        self.add_widget(label2)
        self.add_widget(sw2)
        self.add_widget(slide2)
        self.add_widget(btn2)

        self.add_widget(label3)
        self.add_widget(sw3)
        self.add_widget(slide3)
        self.add_widget(btn3)
示例#16
0
    def build(self):
        root_widget = BoxLayout(orientation='vertical')

        drawing_widget = DrawingWidget()

        red_slider = Slider(min=0,
                            max=1,
                            value=0.5,
                            size_hint_y=None,
                            height=50)
        green_slider = Slider(min=0,
                              max=1,
                              value=0.5,
                              size_hint_y=None,
                              height=50)
        blue_slider = Slider(min=0,
                             max=1,
                             value=0.5,
                             size_hint_y=None,
                             height=50)

        color_row = BoxLayout(orientation='horizontal',
                              size_hint_y=None,
                              height=50)
        color_label = Label(text='output color:')
        color_widget = Widget()

        # Draw a rectangle on the color_widget and update the size
        with color_widget.canvas:
            output_color = Color(red_slider.value, green_slider.value,
                                 blue_slider.value)
            output_rectangle = Rectangle()
        color_widget.bind(pos=partial(update_rectangle,
                                      target=output_rectangle),
                          size=partial(update_rectangle,
                                       target=output_rectangle))

        # Update the value on output_color whenever the color slider values
        # changes.
        red_slider.bind(value=partial(update_color,
                                      target=output_color,
                                      sr=red_slider,
                                      sg=green_slider,
                                      sb=blue_slider))
        green_slider.bind(value=partial(update_color,
                                        target=output_color,
                                        sr=red_slider,
                                        sg=green_slider,
                                        sb=blue_slider))
        blue_slider.bind(value=partial(update_color,
                                       target=output_color,
                                       sr=red_slider,
                                       sg=green_slider,
                                       sb=blue_slider))

        # Put everything together
        root_widget.add_widget(drawing_widget)
        root_widget.add_widget(red_slider)
        root_widget.add_widget(green_slider)
        root_widget.add_widget(blue_slider)
        root_widget.add_widget(color_row)

        color_row.add_widget(color_label)
        color_row.add_widget(color_widget)

        return root_widget
示例#17
0
    def build(self):
        TRACK_COUNT = 26
        STEP_COUNT = 16
        self.title = APPNAME

        sequencer_layout = SequencerLayout()
        sequencer_layout_grid = GridLayout(cols=1, id="rowcontainer")
        transport = Transport()
        transport.size = (200, 80)
        timingbar = sequencer_layout.timingbar
        timingbar.size_hint_x = .2
        timingbar.ids.step.text = "arstrsts"
        transport.add_widget(timingbar)
        playhead_control_bar = PlayheadControlBar()

        # mixer_panel_grid
        mixer_panel_grid = GridLayout(rows=1,
                                      padding=10,
                                      spacing=10,
                                      size_hint=(None, 1))
        mixer_panel_grid.bind(minimum_width=mixer_panel_grid.setter('width'))

        # Effects box
        effects_box = BoxLayout(orientation='vertical')
        effects_box.add_widget(Label(text="Reverb"))
        effects_box.add_widget(Label(text="Echo"))
        effects_box.add_widget(Label(text="Delay"))
        effects_box.add_widget(Label(text="Distortion"))

        # Vertical buttons in mixer_panel_grid
        anothergrid = GridLayout(cols=1, size_hint_x=None, width=200)
        anothergrid.canvas.add(Color(*theme.about_button))
        anothergrid.canvas.add(
            Rectangle(pos=anothergrid.pos, size=anothergrid.size))
        anothergrid.bind(minimum_width=anothergrid.setter('width'))
        # for x in range(10):
        # anothergrid.add_widget(Button(text="anothergrid", size_hint_x=1))
        # anothergrid.add_widget(Label(text="anothergrid", size_hint_y=2))
        anothergrid.add_widget(Slider(orientation='vertical'))
        anothergrid.add_widget(effects_box)
        # anothergrid.add_widget(Label(text="anothergrid", size_hint_x=1))

        # add anothergrid to mixer_panel_grid
        mixer_panel_grid.add_widget(anothergrid)

        # mixer_base holds mixer_panel_grid
        mixer_base = ScrollView(size_hint=(1, None),
                                size=(200, 400),
                                do_scroll_y=False,
                                do_scroll_x=True)

        # Add mixer_panel_grid to mixer_base (Scrollview)
        mixer_base.add_widget(mixer_panel_grid)

        # use this later for sizing / hiding / showing the panel
        # mixer_base.size_hint_y = None
        # mixer_base.height = 0

        step_base = ScrollView(size_hint=(1, 1),
                               do_scroll_y=True,
                               do_scroll_x=True)
        step_base.bar_width = 20
        step_base.scroll_type = ['bars']

        # Sequencer widget (seq_widget.py)
        # SeqWidgetObject = SeqGridWidget()
        SeqWidgetObject = sequencer_layout.sgr
        # side_panel = sequencer_layout.side_panel

        # Add sequencer widget to main panel (step_base)
        step_base.add_widget(SeqWidgetObject)

        # File name lister on left
        file_list = FilenameLister()
        file_list.size_hint_x = .13

        sample_filename_list = []
        path = os.path.dirname(os.path.abspath(__file__))
        for file in os.listdir(path + "/sounds"):
            if file.endswith(".wav"):
                sample_filename_list.append(file)
                file_list.data.insert(0, {'value': file})
        sequencer_layout.add_widget(file_list)
        sequencer_layout_grid.add_widget(transport)
        # sequencer_layout_grid.add_widget()
        # sequencer_layout_grid.add_widget(playhead_control_bar)

        sequencer_layout_grid.add_widget(step_base)

        app = App.get_running_app()
        for i in range(TRACK_COUNT):

            # Add number of mixer panels per track added
            # mixer_panel_grid.add_widget(anothergrid)
            mixer_panel_grid.add_widget(
                Label(text="Mix Panel \n" + str(sample_filename_list[i]),
                      height=220,
                      width=150,
                      size_hint_x=None))

            # mixer_panel_grid.add_widget(effects_box)
            # mixer_panel_grid.add_widget(BoxLayout())

        sequencer_layout_grid.add_widget(mixer_base)
        sequencer_layout.add_widget(sequencer_layout_grid)

        return sequencer_layout
示例#18
0
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        left = True
        switch = False
        space_h = 10
        start_h = 1300
        space_v = 10
        start_v = 45
        size_paint = 100
        iters = 0
        # self.cols = 2
        # self.rows = 2
        #wid = StencilTestWidget(size_hint=(None, None), size=(1300,1300))
        # self.parent = Widget()

        self.painter = MyPaintWidget()

        clearbtn = Button(text='Clear', pos=(1350, 1100))
        clearbtn.bind(on_release=self.clear_canvas)

        mixbtn = Button(text='Mix', pos=(1350, 850))
        mixbtn.bind(on_release=self.mix_colors)

        switchbtn = Button(text="Switch", pos=(1450, 1100))
        switchbtn.bind(on_release=self.switch_button)

        changeAlpha = Slider(min=0,
                             max=100,
                             pos=(1350, 1000),
                             sensitivity='handle')
        changeAlpha.bind(value=self.change_alpha)

        changeLinewidth = Slider(min=0,
                                 max=100,
                                 pos=(1350, 930),
                                 sensitivity='handle')
        changeLinewidth.bind(value=self.change_linewidth)
        self.add_widget(
            Label(text='Brush Width', pos=(1350, 970), color=(0, 0, 0, 1)))
        self.add_widget(changeLinewidth)
        self.add_widget(changeAlpha)
        self.add_widget(
            Label(text='Water (Transparency)',
                  pos=(1350, 1040),
                  color=(0, 0, 0, 1)))

        #parent.add_widget(self.painter)
        self.add_widget(self.painter)

        #parent.add_widget(wid)
        #self.crudeclock = IncrediblyCrudeClock()

        #self.add_widget(self.crudeclock)
        #self.crudeclock.start()

        #return grid

        for col in PAINT_COLORS:
            if iters % 2 == 0 and iters != 0:
                switch = True
            else:
                switch = False
            if switch:
                start_v += (size_paint + space_v)
            if left:
                col_button = Button(text='',
                                    background_color=(col[0], col[1], col[2],
                                                      1),
                                    pos=(start_h + space_h, start_v))
            if not left:
                col_button = Button(text='',
                                    background_color=(col[0], col[1], col[2],
                                                      1),
                                    pos=(start_h + space_h * 2 + size_paint,
                                         start_v))
            left = not left
            iters += 1

            col_button.bind(on_release=self.change_color)
            self.add_widget(col_button)

        self.add_widget(clearbtn)
        self.add_widget(mixbtn)
        self.add_widget(switchbtn)
示例#19
0
            l = BoxLayout(orientation='vertical')
            l.add_widget(Button(text=str(x), size_hint_y=None, height=35))
            l.add_widget(Label(text='Content %d' % x))
            item.add_widget(l)
        else:
            item.add_widget(Label(text='This is a big content\n' * 20))
        acc.add_widget(item)

    def toggle_layout(*l):
        o = acc.orientation
        acc.orientation = 'vertical' if o == 'horizontal' else 'horizontal'

    btn = Button(text='Toggle layout')
    btn.bind(on_release=toggle_layout)

    from kivy.uix.slider import Slider
    slider = Slider()

    def update_min_space(instance, value):
        acc.min_space = value

    slider.bind(value=update_min_space)

    root = BoxLayout(spacing=20, padding=20)
    controls = BoxLayout(orientation='vertical', size_hint_x=.3)
    controls.add_widget(btn)
    controls.add_widget(slider)
    root.add_widget(controls)
    root.add_widget(acc)
    runTouchApp(root)
示例#20
0
            self.dispatch('on_release')
            return True


def callback_release(instance):
    print('The Slider object {} is released'.format(instance))


def callback_value(instance, value):
    print('The slider {} value changed to: {}'.format(instance, value))


modified_slider_instance = ModifiedSlider()
modified_slider_instance.bind(on_release=callback_release)
modified_slider_instance.bind(value=callback_value)

slider_instance = Slider()
slider_instance.bind(value=callback_value)


class TestSlider(App):
    def build(self):
        root = BoxLayout(orientation='vertical')
        root.add_widget(modified_slider_instance)
        root.add_widget(slider_instance)
        return root


if __name__ == '__main__':
    TestSlider().run()
示例#21
0
from pidev.kivy.PassCodeScreen import PassCodeScreen
from pidev.kivy.PauseScreen import PauseScreen
from pidev.kivy import DPEAButton
from pidev.kivy import ImageButton
from kivy.properties import ObjectProperty
from kivy.uix.slider import Slider
from kivy.animation import Animation
from threading import Thread
from time import sleep

from pidev.Joystick import Joystick
from pidev.stepper import stepper

STEPPER = stepper()

s = Slider(min=-100, max=100, value=25)

MIXPANEL_TOKEN = "x"
MIXPANEL = MixPanel("Project Name", MIXPANEL_TOKEN)

SCREEN_MANAGER = ScreenManager()
MAIN_SCREEN_NAME = 'main'
ADMIN_SCREEN_NAME = 'admin'
NEW_SCREEN = 'NewScreen'


class ProjectNameGUI(App):
    """
    Class to handle running the GUI Application
    """
    def build(self):
示例#22
0
    def __init__(self, **kwargs):

        print("make l3d")

        self.boatCoor = boatPos()
        self.kShift = False

        self.oBoxFile = "./3dModels/3d_box.obj"
        self.objs = [
            [
                'boat', "./3dModels/boat2_3dex_boat.obj",
                "./3dModels/oiysh_profile2.jpeg"
            ],
            #['genoa',"./3dModels/boat2_3dex_sailGenoa_onPower.obj","./3dModels/3d_texture_genoa.jpg"],
            [
                'main', "./3dModels/boat2_3dex_sailMain_sailup_onPower.obj",
                "./3dModels/IMG_5410.jpg"
            ]
            #['boom',"./3dModels/boat2_3dex_boom.obj",""],
            #['ruder',"./3dModels/boat2_3dex_ruder.obj",""],
            #['tiler',"./3dModels/boat2_3dex_tiler.obj",""],
            #['roseta','./3dModels/3d_roseta.obj','']
        ]

        tp = '''#:kivy 1.0
#: import Layout3D kivy3dgui.layout3d
Layout3D:
    id: par
    size_hint: (1.0, 1.0)
    post_processing: True
    
		
    	'''

        for i, oo in enumerate(self.objs):
            tp += self.kvStr4Obj(oo[0], oo[1], oo[2])
        """
		boardSize = [3,9]
		tileSize = 4
		xOff = boardSize[0]*tileSize*0.5
		for x in range(0,boardSize[0],1):
			for y in range(0,boardSize[1],1):
				print("tile ",x,"x",y)
				tp+= self.kvStr4Obj(
					"b_%s_%s"%(x,y), 
					self.oBoxFile, 
					"",
					pos=[-xOff+x*tileSize,-8,-y*tileSize]
					)
		"""

        #print("-------------------------")
        #print(tp+"\n--------------------------")
        self.l = Builder.load_string(tp)
        #print("DONE")
        #sys.exit(11)

        self.root = self.l

        bl = BoxLayout(orientation="vertical")
        b = Button(size_hint=(0.1, 0.1), text="r90", size=(10, 10))
        b.bind(on_release=self.btClick)

        bl.add_widget(b)

        if True:
            axis = ["x", "y", "z"]

            ## pos
            blS = BoxLayout(orientation="vertical")
            blS.add_widget(Label(text="Position:"))
            for i, a in enumerate(axis):
                objTid = "sb3dp%s" % a
                objT = Slider(id=objTid,
                              min=-100.0,
                              value=self.boatCoor.pos[i],
                              max=100.0)
                objT.bind(on_touch_move=self.onsBTouch)
                blS.add_widget(objT)

            ## rot
            blS.add_widget(Label(text="Rotation:"))
            for a in axis:
                objTid = "sb3dr%s" % a
                objT = Slider(id=objTid,
                              min=-180.0,
                              value=self.boatCoor.rot[i],
                              max=180.0)
                objT.bind(on_touch_move=self.onsBTouch)
                blS.add_widget(objT)

            ## sails
            blS.add_widget(Label(text="Genoa:"))
            objT = Slider(id="sb4dg",
                          min=-90.0,
                          value=self.boatCoor.rot[i],
                          max=90.0)
            objT.bind(on_touch_move=self.onsBTouch)
            blS.add_widget(objT)

            blS.add_widget(Label(text="Main:"))
            objT = Slider(id="sb4dm",
                          min=-90.0,
                          value=self.boatCoor.rot[i],
                          max=90.0)
            objT.bind(on_touch_move=self.onsBTouch)
            blS.add_widget(objT)

            blS.add_widget(Label(text="Tiller:"))
            objT = Slider(id="sb4dt",
                          min=-45.0,
                          value=self.boatCoor.rot[i],
                          max=45.0)
            objT.bind(on_touch_move=self.onsBTouch)
            blS.add_widget(objT)

            self.l.add_widget(blS)

        self.l.add_widget(bl)

        self.l.bind(on_touch_down=self.on_touch_down)
        self.l.bind(on_touch_move=self.on_touch_move)
        self.l.bind(on_touch_up=self.on_touch_up)

        self.boatCoor.setObjAsArray(self)

        print("------------------------------")
        #print(self.l.ids.Nboat)
        #print(self.l.ids.Nboat.rotate)
        #print(self.l.ids.Nboat.yaw)
        #print(self.l.ids.Nboat.roll)
        #print(help(self.l.ids.Nboat))

        print("make l3d DONE")
    def build(self):
        #self._cap = cv2.VideoCapture(video_file)
        # define botton
        kvButtonPlay = Button(text="play", size_hint=(1.0, 0.1))
        kvButtonPlay.bind(on_press=self.buttonCallbackPlay)

        kvButtonStop = Button(text="stop", size_hint=(1.0, 0.1))
        kvButtonStop.bind(on_press=self.buttonCallbackStop)

        # define image
        self.kvImage_raw = Image()
        self.kvImage_pros = Image()

        # define video layout and add image
        #VideoLayout = BoxLayout(orientation='vertical')
        VideoLayout = GridLayout(cols=2)
        VideoLayout.add_widget(self.kvImage_raw)
        VideoLayout.add_widget(self.kvImage_pros)

        # BoxLayout
        #scrollLayout = BoxLayout(orientation='vertical', size_hint=(1.0, 0.2))
        self.SliderLabel = Label(text='...',
                                 size_hint=(1.0, 0.1),
                                 halign='center')
        SliderBar = Slider(min=1, max=self.num_frames, size_hint=(1.0, 0.1))
        SliderBar.bind(value=self.slideCallback)
        #kvLayout1.add_widget(kvLayout2)
        #kvLayout2.add_widget(kvSlider1)

        # add buttons to layout
        self.subtitle = Label(text='subtitle: ' + '...',
                              halign='left',
                              color=(1, 1, 1, 1),
                              size_hint=(1.0, 0.4))
        self.relation_obj = Label(text='relation_obj: ' + '...',
                                  halign='left',
                                  color=(1, 1, 1, 1))
        ButtonLayout = BoxLayout(orientation='vertical', size_hint=(1.0, 1.0))
        VideoLayout.add_widget(ButtonLayout)
        ButtonLayout.add_widget(self.subtitle)
        #ButtonLayout.add_widget(self.relation_obj)
        ButtonLayout.add_widget(self.SliderLabel)
        ButtonLayout.add_widget(SliderBar)
        ButtonLayout.add_widget(kvButtonPlay)
        ButtonLayout.add_widget(kvButtonStop)

        # add text
        self.second_label = Label(text='second: ' + str(self.seconds),
                                  halign='left',
                                  color=(1, 1, 1, 1))
        self.sound_label = Label(text='sound: ' + '...',
                                 halign='left',
                                 color=(1, 1, 1, 1))
        self.place_label = Label(text='place: ' + '...',
                                 halign='left',
                                 color=(1, 1, 1, 1))
        self.behavior_label = Label(text='behavior: ' + '...',
                                    halign='left',
                                    color=(1, 1, 1, 1))
        self.emotion_label = Label(text='emotion: ' + '...',
                                   halign='left',
                                   color=(1, 1, 1, 1))
        self.relation_kbb = Label(text='knowlege_base: ' + '...',
                                  halign='left',
                                  color=(1, 1, 1, 1))

        # add information in Label layout
        LabelLayout = BoxLayout(orientation='vertical', size_hint=(1.0, 1.0))
        VideoLayout.add_widget(LabelLayout)
        LabelLayout.add_widget(self.second_label)
        LabelLayout.add_widget(self.sound_label)
        LabelLayout.add_widget(self.place_label)
        LabelLayout.add_widget(self.behavior_label)
        LabelLayout.add_widget(self.emotion_label)
        LabelLayout.add_widget(self.relation_kbb)
        LabelLayout.add_widget(self.relation_obj)

        # wait for opencv video capture
        #while not self._cap.isOpened():
        #    pass
        #self._cap.set(cv2.CAP_PROP_FPS, 5)
        # update/clear schedules
        Clock.schedule_interval(self.update, 1.0 / self.frame_rate)
        Clock.schedule_interval(self.clear, self.clear_rate)
        Clock.schedule_interval(self.clear_kb, self.clear_rate * 5)

        return VideoLayout
示例#24
0
    def __init__(self, **kwargs):
        super(MainScreen, self).__init__(**kwargs)
        self.dataReader = DataReader()

        self.VK_CODE = {
            'backspace': 0x08,
            'tab': 0x09,
            'clear': 0x0C,
            'enter': 0x0D,
            'shift': 0x10,
            'ctrl': 0x11,
            'alt': 0x12,
            'pause': 0x13,
            'caps_lock': 0x14,
            'esc': 0x1B,
            'spacebar': 0x20,
            'page_up': 0x21,
            'page_down': 0x22,
            'end': 0x23,
            'home': 0x24,
            'left_arrow': 0x25,
            'up_arrow': 0x26,
            'right_arrow': 0x27,
            'down_arrow': 0x28,
            'select': 0x29,
            'print': 0x2A,
            'execute': 0x2B,
            'print_screen': 0x2C,
            'ins': 0x2D,
            'del': 0x2E,
            'help': 0x2F,
            '0': 0x30,
            '1': 0x31,
            '2': 0x32,
            '3': 0x33,
            '4': 0x34,
            '5': 0x35,
            '6': 0x36,
            '7': 0x37,
            '8': 0x38,
            '9': 0x39,
            'a': 0x41,
            'b': 0x42,
            'c': 0x43,
            'd': 0x44,
            'e': 0x45,
            'f': 0x46,
            'g': 0x47,
            'h': 0x48,
            'i': 0x49,
            'j': 0x4A,
            'k': 0x4B,
            'l': 0x4C,
            'm': 0x4D,
            'n': 0x4E,
            'o': 0x4F,
            'p': 0x50,
            'q': 0x51,
            'r': 0x52,
            's': 0x53,
            't': 0x54,
            'u': 0x55,
            'v': 0x56,
            'w': 0x57,
            'x': 0x58,
            'y': 0x59,
            'z': 0x5A,
            'numpad_0': 0x60,
            'numpad_1': 0x61,
            'numpad_2': 0x62,
            'numpad_3': 0x63,
            'numpad_4': 0x64,
            'numpad_5': 0x65,
            'numpad_6': 0x66,
            'numpad_7': 0x67,
            'numpad_8': 0x68,
            'numpad_9': 0x69,
            'multiply_key': 0x6A,
            'add_key': 0x6B,
            'separator_key': 0x6C,
            'subtract_key': 0x6D,
            'decimal_key': 0x6E,
            'divide_key': 0x6F,
            'F1': 0x70,
            'F2': 0x71,
            'F3': 0x72,
            'F4': 0x73,
            'F5': 0x74,
            'F6': 0x75,
            'F7': 0x76,
            'F8': 0x77,
            'F9': 0x78,
            'F10': 0x79,
            'F11': 0x7A,
            'F12': 0x7B,
            'F13': 0x7C,
            'F14': 0x7D,
            'F15': 0x7E,
            'F16': 0x7F,
            'F17': 0x80,
            'F18': 0x81,
            'F19': 0x82,
            'F20': 0x83,
            'F21': 0x84,
            'F22': 0x85,
            'F23': 0x86,
            'F24': 0x87,
            'num_lock': 0x90,
            'scroll_lock': 0x91,
            'left_shift': 0xA0,
            'right_shift ': 0xA1,
            'left_control': 0xA2,
            'right_control': 0xA3,
            'left_menu': 0xA4,
            'right_menu': 0xA5,
            'browser_back': 0xA6,
            'browser_forward': 0xA7,
            'browser_refresh': 0xA8,
            'browser_stop': 0xA9,
            'browser_search': 0xAA,
            'browser_favorites': 0xAB,
            'browser_start_and_home': 0xAC,
            'volume_mute': 0xAD,
            'volume_Down': 0xAE,
            'volume_up': 0xAF,
            'next_track': 0xB0,
            'previous_track': 0xB1,
            'stop_media': 0xB2,
            'play/pause_media': 0xB3,
            'start_mail': 0xB4,
            'select_media': 0xB5,
            'start_application_1': 0xB6,
            'start_application_2': 0xB7,
            'attn_key': 0xF6,
            'crsel_key': 0xF7,
            'exsel_key': 0xF8,
            'play_key': 0xFA,
            'zoom_key': 0xFB,
            'clear_key': 0xFE,
            '+': 0xBB,
            ',': 0xBC,
            '-': 0xBD,
            '.': 0xBE,
            '/': 0xBF,
            '`': 0xC0,
            ';': 0xBA,
            '[': 0xDB,
            '\\': 0xDC,
            ']': 0xDD,
            "'": 0xDE,
            '`': 0xC0
        }

        self.cols = 2

        self.button = Button(text='Click here to set the zero-point',
                             font_size=14)
        self.add_widget(self.button)

        self.enableButton = Button(text='Click here to stop the sensor',
                                   font_size=14)
        self.enableButton.background_color = (255, 0, 0, .3)
        self.add_widget(self.enableButton)

        # self.cols = 2
        sensitivityLabel = Label(text='Sensitivity (now: 40')
        self.add_widget(sensitivityLabel)
        self.sensitivitySlider = Slider(value_track=True,
                                        value=40,
                                        min=0.5,
                                        max=80,
                                        value_track_color=[1, 0, 0, 1])
        self.add_widget(self.sensitivitySlider)

        # Zero Area size slider
        zeroAreaLabel = Label(text='Zero area size (now: 0.5')
        self.add_widget(zeroAreaLabel)
        self.zeroAreaSlider = Slider(value_track=True,
                                     value=2,
                                     min=0.5,
                                     max=5,
                                     value_track_color=[1, 0, 0, 1])
        self.add_widget(self.zeroAreaSlider)

        # create a dropdown with 10 buttons
        self.dropdown = DropDown()

        ports = list(serial.tools.list_ports.comports())
        for p in ports:
            print(p)
            btn = Button(text='%s' % p, size_hint_y=None)

            btn.bind(on_release=lambda btn: self.dropdown.select(btn.text))
            self.dropdown.add_widget(btn)

        if len(ports) == 0:
            btn = Button(text='No comports found...',
                         size_hint_y=None,
                         height=44)

            btn.bind(on_release=lambda btn: self.dropdown.select(btn.text))
            self.dropdown.add_widget(btn)

        # create select comp port button
        comPortLabel = Label(text='Select com port')
        self.add_widget(comPortLabel)

        self.mainbutton = Button(text='Select a COM port',
                                 size_hint=(0.5, None))
        self.add_widget(self.mainbutton)

        self.mainbutton.bind(on_release=self.dropdown.open)

        # zero point bigness
        self.rotationArea = Label(text='Make it easier to go neutral')
        self.add_widget(self.rotationArea)

        self.rotationRatioSlider = Slider(value_track=True,
                                          value=0.5,
                                          min=0.01,
                                          max=1,
                                          value_track_color=[1, 0, 0, 1])
        self.add_widget(self.rotationRatioSlider)

        # keymapping:
        # left key:
        self.leftKeyDropdown = DropDown()
        self.rightKeyDropdown = DropDown()

        for key, keyCode in self.VK_CODE.items():
            btn = Button(text='%s' % key, size_hint_y=None, height=30)
            btn2 = Button(text='%s' % key, size_hint_y=None, height=30)

            btn.bind(
                on_release=lambda btn: self.leftKeyDropdown.select(btn.text))
            self.leftKeyDropdown.add_widget(btn)

            btn2.bind(
                on_release=lambda btn: self.rightKeyDropdown.select(btn.text))
            self.rightKeyDropdown.add_widget(btn2)

        self.leftKeyDropdownButton = Button(text='Select a left key',
                                            size_hint=(0.5, None))
        self.add_widget(self.leftKeyDropdownButton)

        self.leftKeyDropdownButton.bind(on_release=self.leftKeyDropdown.open)

        self.rightKeyDropdownButton = Button(text='Select a right key',
                                             size_hint=(0.5, None))
        self.add_widget(self.rightKeyDropdownButton)

        self.rightKeyDropdownButton.bind(on_release=self.rightKeyDropdown.open)

        def setZeroPoint(instance):
            self.dataReader.setZeroPointDegrees(self)

        def toggleSensor(instance):
            self.dataReader.toggleEnabledButton()
            self.enableButton.text = 'Click here to stop the sensor' if self.dataReader.enabled else 'Click here to start the sensor'
            self.enableButton.background_color = (
                255, 0, 0, .3) if self.dataReader.enabled else (0, 255, 0, 0.3)

        def OnSliderValueChange(instance, value):
            sensitivityLabel.text = "Sensitivity (now: " + str(value) + ")"
            self.dataReader.updateSensitivity(79.5 - value)

        def OnZeroAreaSliderValueChange(instance, value):
            zeroAreaLabel.text = "Zero area size (now: " + str(value) + ")"
            self.dataReader.updateZeroArea(value)

        def OnRatioSliderChange(instance, value):
            self.rotationArea.text = "Rotation ration(now: " + str(value) + ")"
            self.dataReader.updateSensitivityFactor(value)

        def comPortChanged(instance, value):
            self.mainbutton.text = value
            self.dataReader.initSerialPort(value[:4])

        def leftButtonChanged(instance, value):
            self.leftKeyDropdownButton.text = 'left key: ' + value
            self.dataReader.remapButton('left', self.VK_CODE[value])

        def rightButtonChanged(instance, value):
            self.rightKeyDropdownButton.text = 'right key: ' + value
            self.dataReader.remapButton('right', self.VK_CODE[value])

        self.sensitivitySlider.bind(value=OnSliderValueChange)
        self.rotationRatioSlider.bind(value=OnRatioSliderChange)
        self.button.bind(on_press=setZeroPoint)
        self.zeroAreaSlider.bind(value=OnZeroAreaSliderValueChange)
        self.enableButton.bind(on_press=toggleSensor)
        self.dropdown.bind(on_select=comPortChanged)
        self.leftKeyDropdown.bind(on_select=leftButtonChanged)
        self.rightKeyDropdown.bind(on_select=rightButtonChanged)
示例#25
0
    def build(self):
        self.generateSim()

        root = FireUI(cols=2, size=(800, 1000))

        self.model = FireModel(cols=self.cols, size_hint=(.7, .8))
        self.updateCells()

        self.slider = Slider(max=self.iters - 1, step=1, size_hint=(1, .15))
        self.slider.bind(value=self.OnSliderValueChange)

        panel = InputPanel(size_hint=(.27, .8))
        # deflt = {"Fire": [(1, 2, .55), (1, 1, .6), (2, 1, .31)], "FF": [(3, 2, 1), (4, 5, 1), (5, 1, 1)]}
        # inputs = {'Fire': [], 'FF': []}
        # for t in ['Fire', 'FF']:
        #     for i in range(1, 4):
        #         panel.add_widget(Label(text = str(t) + " " + str(i) + ' Coords: x, y, int', size_hint=(1, .15)))
        #         inpt = GridLayout(cols = 3, size_hint = (1, .15))
        #         tup = ()
        #         for j in range(3):
        #             txt = TextInput(text=str(deflt[t][i-1][j]), multiline = False)
        #             tup += (txt,)
        #             inpt.add_widget(txt)
        #         panel.add_widget(inpt)
        #         inputs[t].append(tup)
        # self.inputs = inputs

        deflt = {
            'Size': ['Small', 'Med', 'Large'],
            'Shape': ['Round', 'Ellipse', 'Odd'],
            'FF': ['Point', 'Surround', 'Optimal']
        }
        inputs = {'Size': [], 'Shape': [], 'FF': [], 'numFFs': None}
        panel.add_widget(Label(text='Num Firefighters', size_hint=(1, .15)))
        inputs['numFFs'] = TextInput(text='8', multiline=False)
        box = BoxLayout(size_hint=(1, .15))
        box.add_widget(inputs['numFFs'])
        panel.add_widget(box)
        for t in ['Size', 'Shape', 'FF']:
            panel.add_widget(Label(text=str(t), size_hint=(1, .15)))
            inpt = GridLayout(cols=len(deflt[t]), size_hint=(1, .15))
            for j in range(len(deflt[t])):
                inpt.add_widget(
                    Label(text=str(deflt[t][j]), size_hint=(1, .05)))
            for j in range(len(deflt[t])):
                rdio = CheckBox(group=t)
                inpt.add_widget(rdio)
                inputs[t].append(rdio)
            panel.add_widget(inpt)
        self.inputs = inputs

        genBtn = Button(text="Generate!!", size_hint=(1, .15))
        panel.add_widget(genBtn)
        genBtn.bind(on_press=self.generateSim)

        root.add_widget(self.model)
        root.add_widget(panel)
        root.add_widget(self.slider)
        #root.add_widget(self.slabel)
        #Clock.schedule_interval(game.update, 1.0 / 60.0)
        return root
示例#26
0
    def update(self, dt):
        self.clear_widgets()

        global state_car

        curTime = datetime.datetime.now()

        timeString = curTime.strftime("%H:%M")
        timeLbl = Label(text='[color=111111] %s [/color]' % timeString,
                        pos=(win_x / 2 - 70, win_y / 2 - 20),
                        font_size='30dp',
                        markup=True)

        dateString = curTime.strftime("%d, %b.")
        dateLbl = Label(text='[color=111111] %s [/color]' % dateString,
                        font_size='20dp',
                        pos=(win_x / 2 - 70, win_y / 2 - 45),
                        markup=True)

        def decSpeed(self):
            state_gui.targetVelocity = -1

        def incSpeed(self):
            state_gui.targetVelocity = 1

        # CSpeed Labels and Target velocity + Buttons
        speedLbl = Label(text="[color=111111][b]%d[/b][/color]" %
                         state_car.targetVelocity,
                         pos_hint={'top': 1.25},
                         font_size="70dp",
                         markup=True)

        targetVel = Label(text="[color=111111][b]%d[/b][/color]" %
                          state_car.velocity,
                          pos_hint={'top': 1.1},
                          font_size="120dp",
                          markup=True)

        speedMinus = Button(text="[color=111111][b]-[/b][/color]",
                            pos=(330, 280),
                            size_hint=(.15, .2),
                            font_size="100dp",
                            markup=True,
                            background_color=(0, 0, 0, 0))
        speedMinus.bind(on_press=decSpeed)

        speedPlus = Button(text="[color=111111][b]+[/b][/color]",
                           pos=(550, 280),
                           size_hint=(.15, .2),
                           font_size="80dp",
                           markup=True,
                           background_color=(0, 0, 0, 0))
        speedPlus.bind(on_press=incSpeed)

        einheitLbl = Label(text="[color=111111][b]km/h[/b][/color]",
                           pos_hint={'top': 0.97},
                           font_size="45dp",
                           markup=True)

        # DrivingMode:
        scale = 60

        # Define current modes and set / change on press
        def changeMode(mode, curDir, vel):
            actColor = "ffd700"
            stdColor = "111111"
            # Park
            if (state_car.breaking > 90) and (mode == "manual"):
                pColor = actColor
                rColor = stdColor
                mColor = stdColor
                jColor = stdColor
                cColor = stdColor
            # Return
            elif curDir == -1:
                pColor = stdColor
                rColor = actColor
                mColor = stdColor
                jColor = stdColor
                cColor = stdColor
            # Manual
            elif mode == "manual":
                pColor = stdColor
                rColor = stdColor
                mColor = actColor
                jColor = stdColor
                cColor = stdColor
            # Joy
            elif mode == "remote":
                pColor = stdColor
                rColor = stdColor
                mColor = stdColor
                jColor = actColor
                cColor = stdColor
            # Cruise Control
            elif mode == "cruise":
                pColor = stdColor
                rColor = stdColor
                mColor = stdColor
                jColor = stdColor
                cColor = actColor
            # Nothing active
            else:
                pColor = stdColor
                rColor = stdColor
                mColor = stdColor
                jColor = stdColor
                cColor = stdColor

            pLbl = Label(text="[color=%s]P[/color]" % pColor,
                         pos=(win_x / 2 - 120, win_y / 2 - 130),
                         font_size='45dp',
                         markup=True)
            rLbl = Label(text="[color=%s]R[/color]" % rColor,
                         pos=(win_x / 2 - 120, win_y / 2 - 130 - (scale)),
                         font_size='45dp',
                         markup=True)
            mLbl = Label(text="[color=%s]M[/color]" % mColor,
                         pos=(win_x / 2 - 120, win_y / 2 - 130 - (scale * 2)),
                         font_size='45dp',
                         markup=True)
            jLbl = Label(text="[color=%s]J[/color]" % jColor,
                         pos=(win_x / 2 - 120, win_y / 2 - 130 - (scale * 3)),
                         font_size='45dp',
                         markup=True)
            cLbl = Label(text="[color=%s]C[/color]" % cColor,
                         pos=(win_x / 2 - 120, win_y / 2 - 130 - (scale * 4)),
                         font_size='45dp',
                         markup=True)

            self.add_widget(pLbl)
            self.add_widget(rLbl)
            self.add_widget(mLbl)
            self.add_widget(jLbl)
            self.add_widget(cLbl)

        changeMode(state_car.mode, state_car.direction, state_car.velocity)

        # Menu Buttons
        def screenMap(self):
            sm.transition = SlideTransition(direction='left')
            sm.current = "MAP"

        def screenCam(self):
            sm.transition = SlideTransition(direction='left')
            sm.current = "CAV"

        def screenLog(self):
            sm.transition = SlideTransition(direction='right')
            sm.current = "LOG"

        mapBtn = Button(text="[b]MAP[/b]",
                        font_size="20sp",
                        pos=(0, 0),
                        size_hint=(.3, .12),
                        markup=True)
        mapBtn.bind(on_press=screenMap)

        camBtn = Button(text="[b]CAM[/b]",
                        font_size="20sp",
                        pos=(win_x / 2 - (win_x * 0.15), 0),
                        size_hint=(.3, .12),
                        markup=True)
        camBtn.bind(on_press=screenCam)

        logBtn = Button(text="[b]LOG[/b]",
                        font_size="20sp",
                        pos=(0, (win_y) - 70),
                        size_hint=(.3, .12),
                        markup=True)
        logBtn.bind(on_press=screenLog)

        # Lane indicators and Lights
        def switchLights(left, right, light):
            # left = "left-arrow"
            leftPath = '../assets/data/%s.png' % left
            rightPath = '../assets/data/%s.png' % right
            lightPath = '../assets/data/%s.png' % light

            leftImg = Image(source=leftPath,
                            size_hint=(.07, .07),
                            pos=(win_x / 2 - 120, win_y / 2 - 130))
            rightImg = Image(source=rightPath,
                             size_hint=(.07, .07),
                             pos=(win_x / 2 + 55, win_y / 2 - 130))
            lightImg = Image(source=lightPath,
                             size_hint=(.07, .07),
                             pos=(win_x / 2 - 30, win_y / 2 - 130))

            self.add_widget(leftImg)
            self.add_widget(rightImg)
            self.add_widget(lightImg)

        # Activate lights and indicators on-press
        if leftOn:
            leftStr = "left-arrow-act"
        else:
            leftStr = "left-arrow"

        if rightOn:
            rightStr = "right-arrow-act"
        else:
            rightStr = "right-arrow"

        if state_car.light:
            lightStr = "car-light-act"
        else:
            lightStr = "car-light"

        switchLights(leftStr, rightStr, lightStr)

        def indicLeft(self):
            global leftOn, rightOn
            leftOn = not leftOn
            if leftOn:
                state_gui.indicate = "Left"
                rightOn = False
            else:
                state_gui.indicate = "None"

        def indicRight(self):
            global leftOn, rightOn
            rightOn = not rightOn
            if rightOn:
                state_gui.indicate = "Right"
                leftOn = False
            else:
                state_gui.indicate = "None"

        def carLight(self):
            state_gui.light = True

        # Place Buttons
        indicLeftBtn = Button(pos=(win_x / 2 - 120, win_y / 2 - 130),
                              size_hint=(.05, .10),
                              font_size="80dp",
                              markup=True,
                              background_color=(0, 0, 0, 0))
        indicLeftBtn.bind(on_press=indicLeft)

        indicRightBtn = Button(pos=(win_x / 2 + 55, win_y / 2 - 130),
                               size_hint=(.05, .10),
                               font_size="80dp",
                               markup=True,
                               background_color=(0, 0, 0, 0))
        indicRightBtn.bind(on_press=indicRight)

        carLightBtn = Button(pos=(win_x / 2 - 30, win_y / 2 - 130),
                             size_hint=(.05, .10),
                             font_size="80dp",
                             markup=True,
                             background_color=(0, 0, 0, 0))
        carLightBtn.bind(on_press=carLight)

        # Toggle Cruise Control
        def toggleCruise(self):
            state_gui.mode = "cruise"

        cruiseBtn = Button(text="[b]CRUISE CONTROL[/b]",
                           font_size="20sp",
                           pos=(win_x - (win_x * 0.3), 0),
                           size_hint=(.3, .12),
                           markup=True)
        cruiseBtn.bind(on_press=toggleCruise)

        # Throttle Slider
        throttleSlider = Slider(min=0,
                                max=100,
                                value=state_car.throttle,
                                orientation="vertical",
                                value_track=True,
                                pos=(-win_x / 3, win_y / 4),
                                size_hint=(1, 0.5),
                                cursor_image='../assets/data/brake32.png')

        # Add all widgets to the screen
        self.add_widget(throttleSlider)
        self.add_widget(speedMinus)
        self.add_widget(speedPlus)
        self.add_widget(mapBtn)
        self.add_widget(camBtn)
        self.add_widget(logBtn)
        self.add_widget(timeLbl)
        self.add_widget(speedLbl)
        self.add_widget(dateLbl)
        self.add_widget(cruiseBtn)
        self.add_widget(indicLeftBtn)
        self.add_widget(indicRightBtn)
        self.add_widget(carLightBtn)
        self.add_widget(targetVel)

        state_pub.publish(state_gui)
        state_gui.targetVelocity = 0
        state_gui.light = False
        state_gui.mode = "manual"
示例#27
0
 def __init__(self):
     super().__init__(orientation='horizontal')
     self.add_widget(Slider(min=-100, max=100, value=25))
     self.add_widget(Label(text="000", size_hint_max_x=50))
     self.add_widget(Label(text="000", size_hint_max_x=50))
    def __init__(self, **kwargs):
        super(mySlider, self).__init__(**kwargs)

        self.cols = 17
        object1_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[0])
        object1_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[0])
        object2_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[1])
        object2_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[1])
        object3_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[2])
        object3_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[2])
        object4_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[3])
        object4_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[3])
        object5_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[4])
        object5_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[4])
        object6_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[5])
        object6_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[5])
        object7_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[6])
        object7_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[6])
        object8_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[7])
        object8_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[7])
        object9_lev_slider = Slider(min=0,
                                    max=1,
                                    orientation='vertical',
                                    value=object_level[8])
        object9_pos_slider = Slider(min=-pos_range,
                                    max=pos_range,
                                    orientation='horizontal',
                                    value=object_pos[8])
        object10_lev_slider = Slider(min=0,
                                     max=1,
                                     orientation='vertical',
                                     value=object_level[9])
        object10_pos_slider = Slider(min=-pos_range,
                                     max=pos_range,
                                     orientation='horizontal',
                                     value=object_pos[9])
        object11_lev_slider = Slider(min=0,
                                     max=1,
                                     orientation='vertical',
                                     value=object_level[10])
        object11_pos_slider = Slider(min=-pos_range,
                                     max=pos_range,
                                     orientation='horizontal',
                                     value=object_pos[10])
        object12_lev_slider = Slider(min=0,
                                     max=1,
                                     orientation='vertical',
                                     value=object_level[11])
        object12_pos_slider = Slider(min=-pos_range,
                                     max=pos_range,
                                     orientation='horizontal',
                                     value=object_pos[11])
        object13_lev_slider = Slider(min=0,
                                     max=1,
                                     orientation='vertical',
                                     value=object_level[12])
        object13_pos_slider = Slider(min=-pos_range,
                                     max=pos_range,
                                     orientation='horizontal',
                                     value=object_pos[13])
        object14_lev_slider = Slider(min=0,
                                     max=1,
                                     orientation='vertical',
                                     value=object_level[13])
        object14_pos_slider = Slider(min=-pos_range,
                                     max=pos_range,
                                     orientation='horizontal',
                                     value=object_pos[14])
        object15_lev_slider = Slider(min=0,
                                     max=1,
                                     orientation='vertical',
                                     value=object_level[14])
        object15_pos_slider = Slider(min=-pos_range,
                                     max=pos_range,
                                     orientation='horizontal',
                                     value=object_pos[15])
        object16_lev_slider = Slider(min=0,
                                     max=1,
                                     orientation='vertical',
                                     value=object_level[15])
        object16_pos_slider = Slider(min=-pos_range,
                                     max=pos_range,
                                     orientation='horizontal')
        btn_toggle_renderer = ToggleButton(text="Switch renderer",
                                           state='down')
        btn_play = Button(text="PLAY")
        btn_stop = Button(text="STOP")
        object1_lev_slider.bind(value=self.set_object1_level)
        object1_pos_slider.bind(value=self.set_object1_pos)
        object2_lev_slider.bind(value=self.set_object2_level)
        object2_pos_slider.bind(value=self.set_object2_pos)
        object3_lev_slider.bind(value=self.set_object3_level)
        object3_pos_slider.bind(value=self.set_object3_pos)
        object4_lev_slider.bind(value=self.set_object4_level)
        object4_pos_slider.bind(value=self.set_object4_pos)
        object5_lev_slider.bind(value=self.set_object5_level)
        object5_pos_slider.bind(value=self.set_object5_pos)
        object6_lev_slider.bind(value=self.set_object6_level)
        object6_pos_slider.bind(value=self.set_object6_pos)
        object7_lev_slider.bind(value=self.set_object7_level)
        object7_pos_slider.bind(value=self.set_object7_pos)
        object8_lev_slider.bind(value=self.set_object8_level)
        object8_pos_slider.bind(value=self.set_object8_pos)
        object9_lev_slider.bind(value=self.set_object9_level)
        object9_pos_slider.bind(value=self.set_object9_pos)
        object10_lev_slider.bind(value=self.set_object10_level)
        object10_pos_slider.bind(value=self.set_object10_pos)
        object11_lev_slider.bind(value=self.set_object11_level)
        object11_pos_slider.bind(value=self.set_object11_pos)
        object12_lev_slider.bind(value=self.set_object12_level)
        object12_pos_slider.bind(value=self.set_object12_pos)
        object13_lev_slider.bind(value=self.set_object13_level)
        object13_pos_slider.bind(value=self.set_object13_pos)
        object14_lev_slider.bind(value=self.set_object14_level)
        object14_pos_slider.bind(value=self.set_object14_pos)
        object15_lev_slider.bind(value=self.set_object15_level)
        object15_pos_slider.bind(value=self.set_object15_pos)
        object16_lev_slider.bind(value=self.set_object16_level)
        object16_pos_slider.bind(value=self.set_object16_pos)
        btn_toggle_renderer.bind(state=self.switch_renderer)
        btn_play.bind(on_press=self.play)
        btn_stop.bind(on_press=self.stop)
        self.add_widget(Label(text=''))
        self.add_widget(Label(text='[b]Narrator[/b]', markup=True))
        self.add_widget(Label(text='[b]Isaac[/b]', markup=True))
        self.add_widget(Label(text='[b]Amelia[/b]', markup=True))
        self.add_widget(Label(text='[b]Creature voice[/b]', markup=True))
        self.add_widget(Label(text='[b]Creature feet[/b]', markup=True))
        self.add_widget(Label(text='[b]FX1[/b]', markup=True))
        self.add_widget(Label(text='[b]FX2[/b]', markup=True))
        self.add_widget(Label(text='[b]FX3[/b]', markup=True))
        self.add_widget(Label(text='[b]FX4[/b]', markup=True))
        self.add_widget(Label(text='[b]FX5[/b]', markup=True))
        self.add_widget(Label(text='[b]FX6[/b]', markup=True))
        self.add_widget(Label(text='[b]FX7[/b]', markup=True))
        self.add_widget(Label(text='[b]FX8[/b]', markup=True))
        self.add_widget(Label(text='[b]FX9[/b]', markup=True))
        self.add_widget(Label(text='[b]Music[/b]', markup=True))
        self.add_widget(Label(text='[b]Atmos[/b]', markup=True))
        self.add_widget(Label(text='[b]Level:[/b]', markup=True))
        self.add_widget(object1_lev_slider)
        self.add_widget(object2_lev_slider)
        self.add_widget(object3_lev_slider)
        self.add_widget(object4_lev_slider)
        self.add_widget(object5_lev_slider)
        self.add_widget(object6_lev_slider)
        self.add_widget(object7_lev_slider)
        self.add_widget(object8_lev_slider)
        self.add_widget(object9_lev_slider)
        self.add_widget(object10_lev_slider)
        self.add_widget(object11_lev_slider)
        self.add_widget(object12_lev_slider)
        self.add_widget(object13_lev_slider)
        self.add_widget(object14_lev_slider)
        self.add_widget(object15_lev_slider)
        self.add_widget(object16_lev_slider)
        self.add_widget(Label(text='[b]Position:[/b]', markup=True))
        self.add_widget(object1_pos_slider)
        self.add_widget(object2_pos_slider)
        self.add_widget(object3_pos_slider)
        self.add_widget(object4_pos_slider)
        self.add_widget(object5_pos_slider)
        self.add_widget(object6_pos_slider)
        self.add_widget(object7_pos_slider)
        self.add_widget(object8_pos_slider)
        self.add_widget(object9_pos_slider)
        self.add_widget(object10_pos_slider)
        self.add_widget(object11_pos_slider)
        self.add_widget(object12_pos_slider)
        self.add_widget(object13_pos_slider)
        self.add_widget(object14_pos_slider)
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        self.add_widget(Label(text=''))
        self.add_widget(btn_toggle_renderer)
        self.add_widget(btn_play)
        self.add_widget(btn_stop)
示例#29
0
 def show_horizontal_sliders(self):
     col = BoxLayout(orientation='vertical', spacing=10)
     col.add_widget(Slider())
     col.add_widget(Slider(value=50))
     return col
示例#30
0
def PieFraction(self):
    width = Fl.size[0] / 5 * 2
    cwid = Widget()

    cirLabel = Label(text="each slice is 100% of the circle",
                     color=(0, 0, 0, 1),
                     font_size=62,
                     pos_hint={
                         "x": .4,
                         'y': .06
                     },
                     size_hint=(.2, .1))

    def draw():
        def update_cir(*args):
            width = Fl.size[0] / 5 * 2
            cir.pos = ((Fl.width / 2) - (Fl.width / 5),
                       (Fl.width / 2) - (Fl.width / 3))
            cir.size = (width, width)

        with cwid.canvas:
            for x in range(slider.value):
                Color(random.random(), random.random(), random.random())
                cir = Ellipse(
                    size=(width, width),
                    pos=((Fl.width / 2) - (Fl.width / 5),
                         (Fl.width / 2) - (Fl.width / 3)),
                    angle_start=(360 / slider.value) * x,
                    angle_end=((360 / slider.value) * x) +
                    (360 / slider.value),
                )
                cwid.bind(pos=update_cir)
                cwid.bind(size=update_cir)
                update_cir()

        Fl.add_widget(cwid)
        update_cir()
        return cirLabel

    def sliderValFunc(instance, val):
        sliderVal.text = "%d" % val
        Fl.remove_widget(cwid)
        cwid.canvas.clear()
        draw()
        cirLabel.text = "each slice is " + \
            str(format(100/slider.value, '.2f'))+"% of the circle"

        return sliderVal.text

    def goBack(self):
        Fl.clear_widgets()
        GameSelector(self)

    logo = Image(source='Images/SH_box2BSHSUName_021_horizontalstack_3_29.png',
                 allow_stretch=True,
                 pos_hint={
                     'x': .01,
                     'y': .9
                 },
                 size_hint=(.2, .1))

    backBtnImage = Image(source='Images/eback-button-6-921315_2_15.png',
                         pos_hint={
                             'x': .01,
                             'y': .83
                         },
                         size_hint=(.04, .07),
                         keep_ratio=True)

    backBtn = Button(pos_hint={
        "x": .01,
        'y': .83
    },
                     size_hint=(.141, .07),
                     background_color=(1, 1, 1, .01))
    backBtn.bind(on_release=goBack)

    slider = Slider(min=1,
                    max=24,
                    step=1,
                    pos_hint={
                        'x': .2,
                        'y': .15
                    },
                    size_hint=(.6, .05))
    slider.bind(value=sliderValFunc)

    sliderVal = Label(text='1',
                      font_size=68,
                      color=(.1, .1, .1, 1),
                      pos_hint={
                          'x': .5,
                          'y': .22
                      },
                      size_hint=(.001, .001))

    draw()

    Fl.add_widget(logo)
    Fl.add_widget(backBtnImage)
    Fl.add_widget(backBtn)
    Fl.add_widget(slider)
    Fl.add_widget(sliderVal)
    Fl.add_widget(cirLabel)