Exemple #1
0
    def build(self):
        """
			Build the Main Application Window
		"""
        #Root widget is a Box Layout
        self.root = BoxLayout(orientation='vertical')

        self.infoText = TextInput(readonly=True)
        self.mainScreenManager = ScreenManager(transition=SlideTransition(
            direction='left'))

        #Add the Action Bar
        self.topActionBar = TopActionBar(self)
        self.root.add_widget(self.topActionBar)

        #Add the Scroll View For displaying Info
        self.infoScrollView = ScrollView(size_hint_y=None, height=0, border=1)
        self.infoScrollView.add_widget(self.infoText)
        #self.root.add_widget(self.infoScrollView)

        #Add the screenManager for handling the different screens
        Builder.load_file('screens/HomeScreen.kv')
        self.homeScreen = HomeScreen.HomeScreen(self)
        Builder.load_file('screens/PrivateKeyScreen.kv')
        self.privateKeyScreen = PrivateKeyScreen.PrivateKeyScreen(self)
        Builder.load_file('screens/IntermediateCodeScreen.kv')
        self.intermediateCodeScreen = IntermediateCodeScreen.IntermediateCodeScreen(
            self)
        Builder.load_file('screens/MnemonicSeedScreen.kv')
        self.mnemonicSeedScreen = MnemonicSeedScreen.MnemonicSeedScreen(self)
        Builder.load_file('screens/PublicKeyScreen.kv')
        self.publicKeyScreen = PublicKeyScreen.PublicKeyScreen(self)
        Builder.load_file('screens/VanityScreen.kv')
        self.vanityScreen = VanityScreen.VanityScreen(self)
        Builder.load_file('screens/ResultsScreen.kv')
        self.resultsScreen = ResultsScreen.ResultsScreen(self)
        Builder.load_file('screens/LinksScreen.kv')
        self.linksScreenWoodWallets = LinksScreen.LinksScreen(
            self, name=self.get_string('Links_Screen_Wood_Wallets'))

        #Add the screens to the screen manager
        self.mainScreenManager.add_widget(self.homeScreen)
        self.mainScreenManager.add_widget(self.privateKeyScreen)
        self.mainScreenManager.add_widget(self.intermediateCodeScreen)
        self.mainScreenManager.add_widget(self.mnemonicSeedScreen)
        self.mainScreenManager.add_widget(self.publicKeyScreen)
        self.mainScreenManager.add_widget(self.vanityScreen)
        self.mainScreenManager.add_widget(self.resultsScreen)
        self.mainScreenManager.add_widget(self.linksScreenWoodWallets)

        #add the screenmanager to the root
        self.root.add_widget(self.mainScreenManager)

        return self.root
Exemple #2
0
 def __init__(self, **kwargs):
     super(PageSelection, self).__init__(**kwargs)
     self.mainbutton = Button(text='Select Setup', size_hint=(1, 0.2))
     self.pages_widget = BoxLayout(orientation='vertical',
                                   size_hint=(1, None))
     #self.pages_widget.bind(minimum_height=self.pages_widget.setter('height'))
     self.pages_widget.add_widget(Button(text='Pages', size_hint=(1, 1)))
     self.scroll_view = ScrollView(size_hint=(1, 0.8), do_scroll_x=False)
     self.scroll_view.add_widget(self.pages_widget)
     self.add_widget(self.mainbutton)
     self.add_widget(self.scroll_view)
Exemple #3
0
    def build(self):
        popup = Popup(title='Draggable Scrollbar',
                      size_hint=(0.8, 1),
                      auto_dismiss=False)

        #this layout is the child widget for the main popup
        layout1 = BoxLayout(orientation="vertical")
        #this button is a child of layout1
        closebutton = Button(text='close', size_hint=(0.9, 0.05))
        closebutton.bind(on_press=popup.dismiss)

        def corelate(instance, value):
            f = 1 - scrlv.scroll_y
            b.text = str(floor(f * 60))

        #another child of layout1 and this is the scrollview which will have a custom draggable scrollbar
        scrlv = ScrollView(size_hint=(0.4, 0.4))
        b = Label(text=str(floor((1 - scrlv.scroll_y) * 60)),
                  size_hint=(0.9, 0.1))
        scrlv.bind(scroll_y=corelate)
        #the last child of layout1 and this will act as the draggable scrollbar
        s = Slider(min=0,
                   max=1,
                   value=25,
                   orientation='vertical',
                   step=0.01,
                   size_hint=(0.1, 0.95))

        scrlv.bind(scroll_y=partial(self.slider_change, s))

        #what this does is, whenever the slider is dragged, it scrolls the previously added scrollview by the same amount the slider is dragged
        s.bind(value=partial(self.scroll_change, scrlv))

        layout2 = GridLayout(cols=1, size_hint_y=None)
        layout2.bind(minimum_height=layout2.setter('height'))
        for i in range(0, 61):
            btn = Label(text=str(i),
                        size_hint_y=None,
                        size_hint_x=0.2,
                        height=60,
                        valign='middle',
                        halign='center',
                        font_size=12)
            btn.text_size = (btn.size)
            layout2.add_widget(btn)
        scrlv.add_widget(layout2)

        layout1.add_widget(scrlv)
        layout1.add_widget(b)
        layout1.add_widget(closebutton)

        layout1.add_widget(s)
        popup.content = layout1
        popup.open()
Exemple #4
0
 def manuPage(self):
     layout=BoxLayout(orientation='vertical')
     layout.bind(minimum_height=layout.setter('height'))
     layout.add_widget(Button(text='课程-岗位',size=(20,10)))
     layout.add_widget(Button(text='test_btn2', size=(20, 10)))
     layout.add_widget(Button(text='test_btn3', size=(20, 10)))
     layout.add_widget(Button(text='test_btn4', size=(20, 10)))
     layout.add_widget(Button(text='test_btn5', size=(20, 10)))
     root = ScrollView(do_scroll_x=False,do_scroll_y=True,size_hint=(0.2,0.8),size=(80,800),pos_hint ={'center_x': .12, 'center_y': .45})
     root.add_widget(layout)
     return root
Exemple #5
0
	def confirmation_popup_before_delete(self, *arg):
		list_folder_to_delete=[]
		for idx, wgt in self.dico_ref_folder_selected_ck.items():
			if wgt.active == True:
				folder_path = self.dico_ref_folder_selected_lbl.get(idx).text
				formated_folder_path = folder_path.replace('...root...', self.root_path)
				list_folder_to_delete.append(formated_folder_path)
		# print("1", list_folder_to_delete)
		list_folder_to_delete_sorted= list(set(list_folder_to_delete))
		list_folder_to_delete_sorted.sort()
		# print("2", list_folder_to_delete_sorted)
		
		
		
		# display in a boxlayout with 1 lable for each folder        
		layout_pop1  = GridLayout (cols=1, size_hint_y=0.9)        
		layout_pop_label  = GridLayout (cols=1, size_hint_y=None) 
		layout_pop_label.bind(minimum_height=layout_pop_label.setter('height'))
		
		for item in list_folder_to_delete_sorted:
			label_pop = Label(text=item, font_size=15, size_hint= (None, None), height= 30)
			label_pop.bind(texture_size=label_pop.setter('size'))
			label_pop.bind(size_hint_min_x=label_pop.setter('width'))
			scroll = ScrollView(size_hint=(None, None), size=(1000, 30))  
			scroll.add_widget(label_pop)
			layout_pop_label.add_widget(scroll)
		scroll2 = ScrollView(size_hint=(1, None), size=(1000, 400))  
		scroll2.add_widget(layout_pop_label)    
		layout_pop1.add_widget(scroll2)

	

		layout_button_pop=BoxLayout (orientation="horizontal")
		button1= Button(text="Delete", size_hint=(None, None), width = 150, height=40, on_press=lambda x: self.deletefolder(list_folder_to_delete_sorted))
		button2=Button(text="Cancel", size_hint=(None, None), width = 150, height=40, on_press=self.closepopup)
		layout_button_pop.add_widget(button1)
		layout_button_pop.add_widget(button2)
		layout_pop1.add_widget(layout_button_pop)
		popup = Popup(content=layout_pop1, auto_dismiss=False, background = 'atlas://data/images/defaulttheme/button_disabled')
		self.popup_ref["popup"] = popup
		popup.open()
Exemple #6
0
 def scroll_labeler(self):
     grid = GridLayout(cols=1, spacing=5, size_hint_y=None)
     grid.bind(minimum_height=grid.setter('height'))
     self.page_scroll = ScrollView(do_scroll_x=False,
                                   size_hint=(1, None),
                                   size=(Window.width, Window.height))
     for n in self.Labeler.list_display():
         btn = Button(text=n, size_hint_y=None, height=200)
         btn.bind(on_press=self.flush_labeler)
         grid.add_widget(btn)
     self.page_scroll.add_widget(grid)
     self.add_widget(self.page_scroll)
Exemple #7
0
 def build_screen(self):
     history = JsonStore(history_path)
     scrollview = ScrollView(do_scroll_x=False)
     md_list = MDList()
     scrollview.add_widget(md_list)
     for i in history.keys():
         item = HistoryItem(text=str(i))
         item.add_widget(
             AvatarSampleWidget(source="./assets/kivy-icon-128.png"))
         md_list.add_widget(item)
     print("building screen for history")
     self.add_widget(scrollview)
Exemple #8
0
    def build(self):
        scroller = ScrollView(size_hint=(1, None), size=(Window.width, Window.height))
        root = Accordion(orientation='vertical',size_hint_y=None,height=50*27)
        chart = self.create_gantt()
        for title in chart:
            item = AccordionItem(title=title)
            item.add_widget(Image(source=title))
            root.add_widget(item)

        scroller.add_widget(root)

        return scroller
Exemple #9
0
 def __init__(self, **kwargs):
     super(ScrollableScreen, self).__init__(**kwargs)
     self.main_layout = GridLayout(cols=1,
                                   size_hint_y=None,
                                   height=Window.height)
     self.main_layout.bind(minimum_height=self.main_layout.setter('height'))
     scroll = ScrollView(size_hint=(1, 1))
     scroll.effect_cls = OverscrollRefresh
     scroll.add_widget(self.main_layout)
     self.add_widget(scroll)
     self.setup_widgets()
     self.main_layout.height = Window.height * 0.9
    def update_section_layout_from_course(self, course):

        self.pop_up.curr_course = course
        self.pop_up.selector_button.text = course.get_name()

        Functions.clear_layout(self.section_layout)

        grid_layout = GridLayout(cols=len(course.activity_dict.keys()),
                                 pos_hint={
                                     'center_x': .5,
                                     'center_y': .5
                                 })

        for activity_key in course.activity_dict:
            grid_layout.add_widget(
                Label(text=Section.Section.activity_dict[activity_key],
                      size_hint=(1, .1),
                      pos_hint={
                          'center_x': .5,
                          'center_y': .5
                      }))

        for activity_key in course.activity_dict:
            activity_layout = BoxLayout(orientation="vertical",
                                        padding=10,
                                        spacing=10,
                                        size_hint=(1, None),
                                        pos_hint={
                                            'center_x': .5,
                                            'center_y': .5
                                        })
            activity_layout.bind(
                minimum_height=activity_layout.setter('height'))

            activity_layout.add_widget(
                ChoiceLayout(label_text="All", check_box_status=True))
            for section in course.activity_dict[activity_key]:
                activity_layout.add_widget(
                    ChoiceLayout(label_text=section.id,
                                 check_box_status=False))

            scroll_view = ScrollView(
                size_hint=(1, 1),
                pos_hint={
                    'center_x': .5,
                    'center_y': .5
                },
                do_scroll_x=False,
            )
            scroll_view.add_widget(activity_layout)
            grid_layout.add_widget(scroll_view)

        self.section_layout.add_widget(grid_layout)
Exemple #11
0
 def __init__(self, **kw):
     super(ParcelScreen, self).__init__(**kw)
     self.box_layout = BoxLayout(orientation='vertical',
                                 spacing=10,
                                 padding=10,
                                 size_hint_y=None)
     self.box_layout.bind(minimum_height=self.box_layout.setter('height'))
     self.scrollview = ScrollView(size_hint=(1, None),
                                  size=(Window.width, Window.height))
     self.scrollview.bar_width = 5
     self.scrollview.add_widget(self.box_layout)
     self.add_widget(self.scrollview)
Exemple #12
0
def scrollgridC(Screen, components, pos, size):
    grid = GridLayout(cols=1, size_hint_y=None)
    grid.bind(minimum_height=grid.setter('height'))

    for i in components:
        grid.add_widget(BadgeC(i['teacher'], i['name'], i['year']))

    scroll = ScrollView(size_hint=(1, None), pos=pos, size=size)
    scroll.do_scroll_y = True
    scroll.do_scroll_x = False
    scroll.add_widget(grid)
    return scroll
Exemple #13
0
def scrollgrid2(Screen, components, pos, size):
    grid = GridLayout(cols=2, size_hint_y=None)
    grid.bind(minimum_height=grid.setter('height'))
    for i in components:
        grid.add_widget(i)

    scroll = ScrollView(size_hint=(1, None), pos=pos, size=size)
    scroll.do_scroll_y = True
    scroll.do_scroll_x = False
    scroll.add_widget(grid)

    return scroll
    def __init__(self):
        self.root = GridLayout(cols=1)
        self.scroll = ScrollView(size_hint=(1, .7))
        self.friends_grid = GridLayout(cols=1)

        refresh_button = Button(text="refresh")
        refresh_button.bind(on_press=self.refresh_friends)

        self.root.add_widget(refresh_button)
        self.fill_friends_grid()
        self.scroll.add_widget(self.friends_grid)
        self.root.add_widget(self.scroll)
Exemple #15
0
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.orientation = "vertical"
        self.spacing = 5

        self.lab_ask = Label(text="Seleccione Proveedor:", size_hint=(1, .2))

        self.add_widget(self.lab_ask)

        self.grid_botones = BoxLayout(size_hint=(1, .2))

        with open("proveedores.csv") as prov:
            lista_proveedor = csv.reader(prov, delimiter=",")
            indice = 1
            for proveedor in lista_proveedor:
                if proveedor[0] != "NOMBRE":
                    exec(f"bot_prov{indice} = Button(text = proveedor[0],)")
                    exec(f"self.grid_botones.add_widget(bot_prov{indice})")
                    exec(
                        f"bot_prov{indice}.bind(on_press= self.articulo_proveedor)"
                    )
                    exec(f"bot_prov{indice}.ID = indice")
                    indice += 1

            exec(f"bot_prov{indice} = Button(text = 'Nuevo Proveedor',)")
            exec(f"self.grid_botones.add_widget(bot_prov{indice})")
            exec(f"bot_prov{indice}.bind(on_press= self.articulo_proveedor)")
            exec(f"bot_prov{indice}.ID = indice")

        self.add_widget(self.grid_botones)

        self.box_text_lab = BoxLayout(
            orientation="vertical",
            size_hint=(1, .2),
        )
        self.add_widget(self.box_text_lab)

        self.grid_tex_art = GridLayout(
            cols=4,
            spacing=5,
            size_hint_y=None,
        )

        self.grid_tex_art.bind(
            minimum_height=self.grid_tex_art.setter('height'))

        rotador = ScrollView(
            size_hint=(1, 1),
            size=(Window.width, Window.height),
        )
        rotador.add_widget(self.grid_tex_art)
        self.add_widget(rotador)
Exemple #16
0
 def on_press(self):
     self.icon_box.clear_widgets()
     self.icon_box.add_widget(
         Image(source=config.data_center[self.text][0],
               allow_stretch=True,
               keep_ratio=False))
     self.statistic_grid.clear_widgets()
     queue_box = BoxLayout(orientation='vertical', size_hint_y=.4)
     queue_scroll = ScrollView(do_scroll_y=False,
                               do_scroll_x=True,
                               size_hint_y=.6)
     self.queue_grid = QueueGridLayout(rows=1, size_hint_x=None, spacing=5)
     self.queue_grid.bind(minimum_width=self.queue_grid.setter('width'))
     for program in range(len(config.programs.keys())):
         prgm_box = QueueSlotHack(size_hint=(None, None),
                                  width=55,
                                  height=55)
         self.queue_grid.add_widget(prgm_box)
     queue_scroll.add_widget(self.queue_grid)
     queue_top = BoxLayout(orientation='horizontal',
                           size_hint_y=.4,
                           padding=5)
     programs_layout = BoxLayout(orientation='horizontal', size_hint_x=.4)
     programs_now = 0
     for pr in config.player_programs:
         programs_now += int(config.player_programs[pr]) * int(
             config.programs[pr][3])
     self.programs_count_label = RightLabel(
         text=f'{programs_now}/{config.programs_max}')
     programs_layout.add_widget(self.programs_count_label)
     programs_layout.add_widget(
         Image(source=r'data/images/gui_elements/disketa.png',
               size_hint=(.45, .45),
               pos_hint=({
                   'center_x': .5,
                   'center_y': .5
               })))
     queue_top.add_widget(Label(text='Очередь: ', size_hint_x=.6))
     queue_top.add_widget(programs_layout)
     queue_box.add_widget(queue_top)
     queue_box.add_widget(queue_scroll)
     compile_box = GridLayout(cols=2, size_hint_y=.6, spacing=7)
     slot1 = HackSlotImage(unlocked=True)
     slot2 = HackSlotImage()
     slot3 = HackSlotImage()
     slot4 = HackSlotImage()
     self.slots = [slot1, slot2, slot3, slot4]
     compile_box.add_widget(slot1)
     compile_box.add_widget(slot2)
     compile_box.add_widget(slot3)
     compile_box.add_widget(slot4)
     self.statistic_grid.add_widget(queue_box)
     self.statistic_grid.add_widget(compile_box)
Exemple #17
0
 def __init__(self,**kwargs):
     BoxLayout.__init__(self,**kwargs)
     self.orientation='vertical'
     self.add_widget(searchbar(pos_hint={'center_x':0.5,'center_y':0.5}))
     self.list=MDList()
     self.suggestions=[]
     self.scroll=ScrollView(do_scroll_x=False)
     self.scroll.add_widget(self.list)
     for x in range(10):
         self.suggestions.append(OneLineListItem())
     self.add_widget(self.scroll)
     self.add_widget(BoxLayout())
Exemple #18
0
    def __init__(self, *args, **kwargs):
        super(Page, self).__init__(**kwargs)
        self.orientation = "vertical"

        self.textbox = MyBoxLayout(padding=[dp(10), 0], size_hint_y=0.3)
        self.text_container = ScrollView(
            scroll_type=["bars"],
            effect_cls="ScrollEffect",
            bar_width=15,
            do_scroll_y=False,
        )

        self.entry = Text(
            size_hint=(None, 1),
            base_direction="rtl",
            font_size="75dp",
            unfocus_on_touch=False,
        )

        self.preview = MLabel(
            halign="right",
            valign="bottom",
            font_size=self.entry.font_size // 3,
            color=self.entry.foreground_color[:3] + [0.8],
            size_hint_y=0.1,
            padding_x=10,
            markup=True,
            text=self.preview_text,
        )
        self.preview.bind(on_ref_press=lambda object, text: setattr(
            self.entry, "text", eval(text)))
        self.preview.bind(
            on_ref_press=lambda object, text: setattr(object, "text", ""))

        self.layout = ButtonStack(
            size_hint=(1, 0.5),
            spacing=5,
            rows=self.rows,
            cols=self.cols,
            font_size=dp(19),
            text_list=self.text_list,
        )

        self.text_container.add_widget(self.entry)
        self.textbox.add_widget(self.text_container)
        Clock.schedule_interval(self.scroll_focus, 0.1)

        self.layout.buttons[0][0].text = self.page_name
        self.layout.size_change(0, 0, 2)
        self.layout.size_change(-1, -1, 2)
        self.spacing = 5
        for widget in (self.preview, self.textbox, self.layout):
            self.add_widget(widget)
Exemple #19
0
def Subject():
    """Second screen. Subject selection"""
    Subject.view = ScrollView(size_hint=(1, None),
                              size=(Window.width, Window.height),
                              bar_width=7)

    Subject.layout = GridLayout(cols=1, spacing=10, size_hint_y=None)
    Subject.layout.bind(minimum_height=Subject.layout.setter("height"))

    # Label
    Subject.label = Label(text=_("Choose subject"),
                          size_hint_y=None,
                          height=60)
    Subject.layout.add_widget(Subject.label)

    # Subject buttons
    Subject.sub1 = Button(text=_("English"), size_hint_y=None, height=60)
    Subject.sub2 = Button(text=_("Russian"), size_hint_y=None, height=60)
    Subject.sub3 = Button(text=_("Belarussian"), size_hint_y=None, height=60)
    Subject.sub4 = Button(text=_("Math"), size_hint_y=None, height=60)
    Subject.sub5 = Button(text=_("Geography"), size_hint_y=None, height=60)
    Subject.sub6 = Button(text=_("Informatics"), size_hint_y=None, height=60)
    Subject.sub7 = Button(text=_("Physics"), size_hint_y=None, height=60)
    Subject.sub8 = Button(text=_("Biology"), size_hint_y=None, height=60)

    # binding subject buttons
    Subject.sub1.bind(on_release=subjectChange)
    Subject.sub2.bind(on_release=subjectChange)
    Subject.sub3.bind(on_release=subjectChange)
    Subject.sub4.bind(on_release=subjectChange)
    Subject.sub5.bind(on_release=subjectChange)
    Subject.sub6.bind(on_release=subjectChange)
    Subject.sub7.bind(on_release=subjectChange)
    Subject.sub8.bind(on_release=subjectChange)

    Subject.back = Button(text=_("Back"), size_hint_y=None, height=60)
    Subject.back.bind(on_release=partial(changeScreen, "Lang"))

    # Adding all widgets to layout
    Subject.layout.add_widget(Subject.sub1)
    Subject.layout.add_widget(Subject.sub2)
    Subject.layout.add_widget(Subject.sub3)
    Subject.layout.add_widget(Subject.sub4)
    Subject.layout.add_widget(Subject.sub5)
    Subject.layout.add_widget(Subject.sub6)
    Subject.layout.add_widget(Subject.sub7)
    Subject.layout.add_widget(Subject.sub8)
    Subject.layout.add_widget(Subject.back)

    Subject.view.add_widget(Subject.layout)

    # Adding screen to ScreenManager
    subscreen.add_widget(Subject.view)
Exemple #20
0
def scrollgridU(Screen, components, pos, size):
    grid = GridLayout(cols=1, size_hint_y=None)
    grid.bind(minimum_height=grid.setter('height'))

    for i in components:
        grid.add_widget(BadgeU(i['level'], i['userid'], i['password']))

    scroll = ScrollView(size_hint=(1, None), pos=pos, size=size)
    scroll.do_scroll_y = True
    scroll.do_scroll_x = False
    scroll.add_widget(grid)
    return scroll
Exemple #21
0
 def __init__(self, *args, **kwargs):
     super(Books, self).__init__(orientation="horizontal")
     scrollview = ScrollView()
     list = MDList()
     with open("modules/books.json", encoding="UTF-8") as file:
         for i in json.load(file):
             list.add_widget(
                 MyItem(author=i['author'],
                        book=i['book'],
                        genre=i['genre']))
     scrollview.add_widget(list)
     self.add_widget(scrollview)
Exemple #22
0
    def __init__(self, name, **kwargs):
        super().__init__(**kwargs)
        self.orientation = "vertical"
        # the below is now handled
        #self.size_hint = (None, None) #it would be nice if this could be optionally passed in with kwargs
        #self.size = (width, height)
        self.source = ""
        self.show_file_names = True
        self.selected_image = SpecialImage(None)
        self.image_width_hint = 1  # big one
        self.bind(
            size=partial(self.set_image_width_hint)
        )  # will need size or just height, depending on what's being used in the function

        Window.bind(mouse_pos=self._mouse_move)
        self.hover_count = None  # set this during populate

        self.menu_bar = MenuBar(name, almost_black, light_grey, light_blue)
        self.add_widget(self.menu_bar)

        self.scroll_body = ScrollView(bar_width='12dp',
                                      scroll_wheel_distance='20dp',
                                      scroll_type=['bars', 'content'],
                                      bar_inactive_color=[.7, .7, .7, .2
                                                          ])  ### add settings
        self.add_widget(self.scroll_body)
        self.scroll_body.bind(on_scroll_stop=self.on_scroll_stop_function)

        self.body = StackLayout(
            orientation="lr-tb",
            size_hint_x=0.99,
            size_hint_y=None,
            spacing=[1, 5]
        )  # the horizontal spacing isn't like the website, but they didn't have background colours like I do
        self.scroll_body.add_widget(self.body)
        self.body.bind(minimum_height=self.body.setter('height'))
        self.body.bind(height=self.scroll_test_function)

        self.bottom_bar = BottomBar(size_hint=(1, None),
                                    height='17dp',
                                    font_size='13dp',
                                    bold=True)
        self.add_widget(self.bottom_bar)

        self.draw()
        self.bind(pos=self.update_rectangles, size=self.update_rectangles)

        self.bind(size=self.test_function)

        self.size = self.size

        self.test_function()
def generate_GUI(menus):
    app_gui = TabbedPanel()
    app_gui.clear_tabs()
    app_gui.orientation = "vertical"
    app_gui.do_default_tab = False
    app_gui.tab_width = 150

    for menu_key, sub_menu in menus.items():
        main_menu = TabbedPanelHeader(text=menu_key)
        scroll_pane = ScrollView()
        scroll_pane.scroll_type = ['bars', 'content']
        scroll_pane.bar_pos_y = 'left'
        scroll_pane.bar_width = 6
        scroll_pane.do_scroll_y = True
        scroll_pane.do_scroll_x = False
        scroll_pane.scroll_y = 1

        menu_grid = GridLayout(cols=1, spacing=2, size_hint_y=None)
        menu_grid.orientation = "vertical"
        menu_grid.padding = 10
        menu_grid.row_default_height = 1
        menu_height = 0

        print(">>>" + menu_key)
        for sub_menu_key, items in sub_menu.items():
            menu_grid.add_widget(
                Label(text="     " + sub_menu_key, size_hint=(None, None), font_size=14, halign="left",
                      valign="middle"))
            print("\t" + sub_menu_key)
            for option in items:

                if "Name" in option:
                    print("\t\t" + option["Name"])
                    btn = Button(text=option["Name"], size_hint=(0.1, None), background_color=(0.2, 1, 1, 0.8))
                    btn.bind(on_press=lambda x: webbrowser.open(option["URL"]))
                else:
                    print("\t\t" + "<EMPTY>")
                    btn = Button(text="<EMPTY>", size_hint=(0.1, None), background_color=(0.2, 1, 1, 0.8))
                    btn.bind(on_press=lambda x: webbrowser.open(option["URL"]))
                btn.width = 250
                btn.height = 50
                menu_grid.add_widget(btn)
                menu_height += 80
            menu_height += 51
        menu_grid.height = menu_height
        scroll_pane.add_widget(menu_grid)
        main_menu.content = scroll_pane
        main_menu.orientation = "vertical"

        # Adding headers to main layout
        app_gui.add_widget(main_menu)
    return app_gui
    def __init__(self, **kwargs):
        super(Main_Page, self).__init__(
            **kwargs)  # this is only for if kivy code goes in the py file

        # backend things
        sql_handler.connect_to_db()  # create db
        self.tablenames = sql_handler.get_tables()  # list of all sql tables
        self.trading_days = backend.get_trading_days(
        )  # list of last/this week's trading days, excludes weekends
        self.btn_list = []  # holds all btns but the headers
        self.ticker_list = backend.call_get_tickers(
            self.tablenames
        )  # holds all tickers used (so I don't have to call sql over and over)
        self.master_list = backend.get_all_data(self.tablenames,
                                                self.ticker_list,
                                                self.trading_days)
        self.todays_index = backend.get_todays_index()  # day of the week
        self.plot_tickers = []  # tickers to show on the plot
        self.plot_colors = [
            [1, 1, 0, 1], [1, 0, 0,
                           1],
            [1, 0, 1, 1], [0.5, .75, .9,
                           1], [0, 1, 0.3, 1]
        ]  # red, yellow, purple, light blue, green | line colors for plot
        self.plot_ratings = []  # holds ratings for the plot (2d list)
        self.plot_dates = backend.plot_make_dates(
        )  # x-axis of plot, 10 most recent trading dates
        self.twitter_blocker = False  # blocks twitter code is I've posted this session

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

        # UI things
        self.orientation = 'vertical'  # rows not cols

        # this can't a method since I want access to stock_grid later and don't want to try navigating through 2 layers of children for it
        scroll = ScrollView(
            do_scroll_x=False, do_scroll_y=True
        )  # a scroll view will contain the stock gridlayout
        self.stock_grid = GridLayout(cols=9,
                                     size_hint_y=None)  # holds my stocks
        self.stock_grid.bind(minimum_height=self.stock_grid.setter(
            "height"))  # makes the gridlayout scrollabel via the scrollview
        scroll.add_widget(self.stock_grid)

        self.add_widget(
            self.create_top_grid())  # 1st of 2 gridlayouts (the upper one)
        self.add_widget(scroll)  # 2nd of 2 grids (scrollable stock holder)

        # some things used throughout / app start methods
        self.make_header_row(["Rating", "Ticker"])  # make the ehader row
        #self.highlight_today()
        self.update_ui("start of app")
    def __init__(self, audio_manager: AudioManager,
                 execution_manager: ExecutionManager,
                 trained_model_manager: TrainedModelManager):
        self.audio_manager = audio_manager
        self.execution_manager = execution_manager
        self.trained_model_manager = trained_model_manager
        super().__init__(rows=20, cols=1)
        self.add_entry(Label(text='Trained Models',
                             font_size='20sp',
                             color=[0, 0, 0, 1]),
                       position=(18, 0),
                       shape=(2, 1))

        self.trained_models_scroll = ScrollView()
        self.add_entry(self.trained_models_scroll,
                       position=(11, 0),
                       shape=(7, 1),
                       padding_x=(0.1, 0.1),
                       color=(0.6, 0.6, 0.6, 1))

        self.trained_models_widget = GridLayout(cols=1,
                                                spacing=2,
                                                size_hint_y=None)
        self.trained_models_scroll.add_widget(self.trained_models_widget)
        self.trained_models_widget.bind(
            minimum_height=self.trained_models_widget.setter('height'))

        EventListener.add_listener("update_trained_models",
                                   self.update_trained_model_entries)

        self.editor_controls = SparseGridLayout(rows=1, cols=4)
        self.add_entry(self.editor_controls,
                       position=(10, 0),
                       shape=(1, 1),
                       padding_x=(0.1, 0.1))

        self.close_button = Button(text="Close")
        self.close_button.on_press = self.close_trained_model
        self.editor_controls.add_entry(self.close_button,
                                       position=(0, 3),
                                       shape=(1, 1),
                                       padding_x=(0.01, 0.01),
                                       padding_y=(0.1, 0.1))
        self.editor_controls.hide_entry(self.close_button)

        self.result_viewer = TrainingResultView(self.audio_manager,
                                                self.execution_manager,
                                                self.trained_model_manager)
        self.add_entry(self.result_viewer, position=(0, 0), shape=(10, 1))
        self.hide_entry(self.result_viewer)

        self.update_trained_model_entries()
Exemple #26
0
    def build(self):
        sc = Screen()
        #one line list item
        list_view = MDList()
        scrool = ScrollView()
        #item1 = OneLineListItem(text="line1")
        #item2 = OneLineListItem(text="line2")
        #item3 = OneLineListItem(text="line3")
        #list_view.add_widget(item1)
        #list_view.add_widget(item2)
        #list_view.add_widget(item3)
        #scrool.add_widget(list_view)

        #two line list item
        #item1 = TwoLineListItem(text="firs tline",secondary_text="second line")
        #item2 = TwoLineListItem(text="firs tline",secondary_text="second line")
        #list_view.add_widget(item1)
        #list_view.add_widget(item2)
        #scrool.add_widget(list_view)
        #sc.add_widget(scrool)

        #three line list item
        #item1 = ThreeLineListItem(text="line1",secondary_text="line2",tertiary_text="line3")
        #item2 = ThreeLineListItem(text="line1",secondary_text="line2",tertiary_text="line3")
        #list_view.add_widget(item1)
        #list_view.add_widget(item2)
        #scrool.add_widget(list_view)
        #sc.add_widget(scrool)

        #custamizing the list
        #oneline avatar item
        #item1 = OneLineAvatarListItem(text="line1")
        #subitem = IconLeftWidget(icon="language-python")
        #tem1.add_widget(subitem)

        #two line avatrar list item
        #item1 = TwoLineAvatarListItem(text="line1",secondary_text="line2")
        #subitem = IconLeftWidget(icon="language-python")
        #item1.add_widget(subitem)

        #three line avatar list item
        #item1 = ThreeLineAvatarListItem(text="line1",secondary_text="line2",tertiary_text="line3")
        #subitem = IconLeftWidget(icon="language-python")
        #item1.add_widget(subitem)

        #item1 = OneLineAvatarIconListItem(text="python")
        #ic = IconLeftWidget(icon="language-python")
        #chek=CheckBox()
        #item1.add_widget(ic)
        #item1.add_widget(chek)
        #sc.add_widget(item1)
        return sc
Exemple #27
0
    def _create_popup(self, instance):
        """
        Create the main Exchange popup to which new rows can be added
        :param instance:
        :return:
        """
        self.exchange = self.key
        main_layout = BoxLayout(orientation='vertical', spacing='5dp')
        scroll_view = ScrollView(do_scroll_x=False)
        header = GridLayout(cols=5,
                            spacing='5dp',
                            row_default_height='50dp',
                            row_force_default=True,
                            size_hint_y=None,
                            height='50dp')
        header.add_widget(Label(text='API', valign='top', size_hint_x=0.2))
        header.add_widget(Label(text='NBT', valign='top', size_hint_x=0.2))
        header.add_widget(Label(text='Cur', valign='top', size_hint_x=0.2))
        header.add_widget(Label(text='rates', valign='top', size_hint_x=0.2))
        header.add_widget(Label(text='Bot', valign='top', size_hint_x=0.2))
        self.content = GridLayout(cols=5,
                                  spacing='5dp',
                                  row_default_height='50dp',
                                  row_force_default=True,
                                  size_hint_x=1,
                                  size_hint_y=None)
        self.content.bind(minimum_height=self.content.setter('height'))
        main_layout.add_widget(header)
        scroll_view.add_widget(self.content)
        main_layout.add_widget(scroll_view)
        self.popup = popup = Popup(title=self.title, content=main_layout)

        # construct the content, widget are used as a spacer
        main_layout.add_widget(SettingSpacer())

        # buttons are created for accept or cancel the current value
        btnlayout = BoxLayout(size_hint_y=None, height='50dp', spacing='5dp')
        btn = Button(text='Ok')
        btn.bind(on_release=self._validate)
        btnlayout.add_widget(btn)
        btn = Button(text='Cancel')
        btn.bind(on_release=self._dismiss)
        btnlayout.add_widget(btn)
        btn = Button(text='Add Row')
        btn.bind(on_release=self.add_row)
        btnlayout.add_widget(btn)
        main_layout.add_widget(btnlayout)

        self.load_data()

        # all done, open the popup !
        popup.open()
Exemple #28
0
    def library(self, instance):
        print "Show library"
        k = instance.parent.parent.parent.children[0]
        k.clear_widgets()
        s = GridLayout(cols=1, spacing=3, size_hint_y=None)
        s.bind(minimum_height=s.setter('height'))
        os.chdir(self.music_path)
        for i in os.listdir(u'.'):
            if '.mp3' in i:
                i = i.encode('utf-8')
                print type(i), i
                s.add_widget(
                    Button(text=i[:-4],
                           color=(1, 1, 1, 1),
                           size_hint_y=None,
                           height=70,
                           on_press=self.playSong,
                           background_color=self.song_color,
                           background_normal=''))

        g = ScrollView(size_hint=(1, 0.5), pos_hint={'x': 0, 'y': 0})
        g.add_widget(s)
        d = StackLayout(size_hint=(1, 0.3),
                        pos_hint={
                            'center_x': 0.5,
                            'y': 0.5
                        },
                        orientation='lr-tb')
        d.add_widget(
            Button(text=self.current_song,
                   color=(0, 0, 0, 1),
                   size_hint=(1, 0.5),
                   pos_hint={
                       'x': 0,
                       'y': 0.5
                   },
                   background_normal='',
                   background_color=(1, 1, 1, 1)))
        d.add_widget(
            Button(text="STOP",
                   size_hint=(0.5, 0.5),
                   on_press=self.playSong,
                   background_normal='',
                   background_color=(0.9, 0.1, 0.1, 1)))
        d.add_widget(
            Button(text="PAUSE",
                   size_hint=(0.5, 0.5),
                   on_press=self.playSong,
                   background_normal='',
                   background_color=(0.9, 0.7, 0.1, 1)))
        k.add_widget(g)
        k.add_widget(d)
Exemple #29
0
    def results_panel_fill(self):
        # remove previous results from results grid
        self.results_grid.clear_widgets()
        self.results_panel = TabbedPanel(do_default_tab=False)

        # loop through categories in current results
        for category in self.results.categories.keys():

            category_tab = TabbedPanelHeader(text=category)

            # add grid to a scrollview widget
            items_scrollview = ScrollView(size_hint=(1, None), size=(Window.width, Window.height * 0.55))

            # create grid that is scrollable
            items_grid = GridLayout(cols=3, size_hint=(1, None), size=(Window.width, Window.height * 0.55))
            items_grid.bind(minimum_height=items_grid.setter('height'))

            new_items_field = TextInput(hint_text="'Seperate multiple items with commas'")
            add_item_btn = Button(text='Add\nitems', size_hint=(del_col, None),
                                  on_press=partial(self.add_new_cat_item_callback, input=new_items_field,
                                                   category=category))
            add_widgets(items_grid, (new_items_field, add_item_btn))

            # disable add new item button on search box when add item btn in results box is added
            # self.add_item_btn.disabled = True

            # loop through items in category

            items = self.results.categories[category].items.items()
            for (item_name, item_obj) in items:
                # create item label, edit button, and del button
                delete_btn = ToggleButton(text="X", size_hint=(del_col, None),
                                          on_press=partial(self.delete_item_callback,
                                                           item=item_name,
                                                           category=category))

                edit_btn = Button(text=item_name, size_hint=(item_col, None),
                                  on_press=partial(self.edit_item_callback, category=category, item=item_name))

                edit_btn.text_size=edit_btn.size

                # edit_btn.text_size = edit_btn.size
                add_widgets(items_grid, (edit_btn, delete_btn))
            # create a textbox for adding new items'

            items_scrollview.add_widget(items_grid)

            category_tab.content = items_scrollview
            self.results_panel.add_widget(category_tab)

        # add panel to results grid
        self.results_grid.add_widget(self.results_panel)
 def __init__(self, **kwargs):
     self.offset = 0     #offset is to generate the next/previous week's weekly schedules
     self.btn = [[None for _ in range(21)] for _ in range(21)]       #initialize empty variables to be used by button slots
     Screen.__init__(self, **kwargs)
     self.Main = GridLayout(rows = 3)    
     self.add_widget(self.Main)
     self.Dayslayout = self.create_days(self.offset)
     self.Buttonlayout = GridLayout()        #initialize the base gridlayout for the timetable screen
     self.root = ScrollView()                #to implement scroll view for the slots
     self.root.add_widget(self.Buttonlayout) #adding subsequent widgets to the scroll and grid layouts
     self.Main.add_widget(self.Dayslayout)
     self.Main.add_widget(self.root)                
     self.popup = None