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
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)
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()
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
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()
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)
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)
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
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)
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)
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
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)
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)
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)
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())
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)
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)
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
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)
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()
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
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()
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)
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