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)
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
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
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)
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
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
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
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')
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)
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)
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)
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)
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)
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
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
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)
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)
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()
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):
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
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)
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
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"
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)
def show_horizontal_sliders(self): col = BoxLayout(orientation='vertical', spacing=10) col.add_widget(Slider()) col.add_widget(Slider(value=50)) return col
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)