def all_student(self): self.conn = sqlite3.connect('SCHOOL.db') self.c = self.conn.cursor() self.all_students = self.c.execute('SELECT * FROM STUDENTS') gris = GridLayout( rows=2, # row_default_height=(self.width - self.cols * self.spacing[0]) / self.cols, # row_force_default=True, # size_hint_y=None, # height=self.minimum_height, padding=(dp(1), dp(1)), spacing=dp(1)) sv = ScrollView() ml = MDList() for row in self.all_students: ml.add_widget( ThreeLineListItem(text=str(row[1]), secondary_text=row[2] + '\n' + row[3])) sv.do_scroll_y = True sv.do_scroll_x = False sv.add_widget(ml) gris.add_widget( MDTextField(hint_text="Helper text on focus", helper_text="This will disappear when you click off", helper_text_mode="on_focus")) gris.add_widget(sv) self.root.ids.students.add_widget(gris) self.root.ids.screen_manager.current = str(self.root.ids.students.name)
def __init__(self, **kwargs): super(MainScreen, self).__init__(**kwargs) table_header = [ ['ID', 'center', 'center', 'string', 0.1, 'hidden'], ['Field 01', 'center', 'left', 'option', 0.4, 'visible'], ['Field 02', 'center', 'right', 'number', 0.3, 'visible'], ['Field 03', 'center', 'right', 'coin', 0.2, 'visible'] ] table_body = [['01', 'Item 01', '12', '1.8'], ['02', 'Item 02', '43', '1.8'], ['03', 'Item 03', '3', '1.8'], ['04', 'Item 04', '23', '1.8'], ['05', 'Item 05', '12', '1.8'], ['06', 'Item 06', '23', '1.8']] table_footer = ['footer 01', 'footer 02', 'footer 03'] grid = DataGrid(table_header, table_body, '', '') # _size=(400, 500000) scroll = ScrollView(size_hint=(1, 1), scroll_y=0, pos_hint={ 'center_x': .5, 'center_y': .5 }, effect_y=None, scroll_distance=0) scroll.add_widget(grid) scroll.do_scroll_y = True scroll.do_scroll_x = False self.children[0].add_widget(scroll) new_data = ['XX', 'Novo Produto', '1023', '2.12'] def add_new_row(self): grid.add_row(new_data) def remove_sel_row(self): grid.remove_selected_row() def select_all_cells(self): grid.select_all() def deselect_all_cells(self): grid.deselect_all() self.children[0].add_widget( Button(text="add row", on_release=add_new_row, size_hint_y=.2)) self.children[0].add_widget( Button(text="remove row", on_release=remove_sel_row, size_hint_y=.2)) self.children[0].add_widget( Button(text="select all", on_release=select_all_cells, size_hint_y=.2)) self.children[0].add_widget( Button(text="deselect all", on_release=deselect_all_cells, size_hint_y=.2))
def scrollgrid(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(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 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 list_course(self): box = BoxLayout() sv = ScrollView() ml = MDList() self.get_courses = self.c.execute('SELECT * FROM COURSES') for row in sorted(self.get_courses): ml.add_widget(OneLineListItem(text=str(row[1]))) sv.do_scroll_y = True sv.do_scroll_x = False sv.add_widget(ml) self.root.ids.courses.add_widget(sv) self.root.ids.screen_manager.current = str(self.root.ids.courses.name)
def __init__(self, **kwargs): super(ProductDetailScreen, self).__init__(**kwargs) # File name of the beer selected # NEEDS TO BE SET #bottle_name = ('Coors_Lightbottle.jpg') # Beer name from the given bottle name #beer_name = re.sub('[^a-zA-Z0-9\n]', ' ', bottle_name) #beer_name = beer_name[:-4] # Beer text description pulled cfrom the given beer_name # NEEDS TO BE SET self.descriptionAnchor.add_widget(self.descriptionLabel) # self.info_layout.add_widget(self.nameLabel_two) # self.info_layout.add_widget(self.locationLabel) # self.info_layout.add_widget(self.priceLabel) self.info_layout.add_widget(self.descriptionAnchor) self.bottleImage_layout.add_widget(self.bottleImage) # Get all the tags for the given beer # NEEDS TO BE SET beer_tags = 'sports football stadium party coors molson light beer mountains' tag_list = [] for i in beer_tags.split(): tag_list.append(i) # Horizontal Scrollable View grid_one_layout = GridLayout(cols=30, spacing=5, size_hint_x=None) # Make sure the height is such that there is something to scroll. grid_one_layout.bind(minimum_width=grid_one_layout.setter('width')) for tag_name in tag_list: relative_one_layout = AnchorLayout(size_hint_x=None, size_hint_y=None, height=30, width=100) btn = Button(size_hint_y=None, size_hint_x=None, height=30, width=100, background_color=[1,1,1,1]) label = Label(text=tag_name, color=[0,0,0,1], size_hint=(None, None), height=30, width=relative_one_layout.width, halign='center', pos_hint={'x':0,'y':0}) relative_one_layout.add_widget(btn) relative_one_layout.add_widget(label) grid_one_layout.add_widget(relative_one_layout) scroll_view_one = ScrollView(bar_color=[0,0,0,0], size_hint=(1.0, None), height=30, pos_hint={'x':0.0,'y':0.0}) scroll_view_one.do_scroll_y=False scroll_view_one.do_scroll_x=True scroll_view_one.add_widget(grid_one_layout) #self.add_widget(scroll_view_one) # Add wigets to the product detail page self.add_widget(self.logoImage) self.add_widget(self.bottleImage_layout) self.add_widget(self.nameLabel) self.add_widget(self.nameLabel_two) self.add_widget(self.locationLabel) self.add_widget(self.priceLabel) self.add_widget(self.info_layout)
def teachers(self): sv = ScrollView() ml = MDList() rows = self.c.execute('SELECT * FROM TEACHERS') for row in sorted(rows): ml.add_widget( ThreeLineListItem(text=str(row[1]), secondary_text="id: " + str(row[0]) + '\n' 'under : ' + row[2])) sv.do_scroll_y = True sv.do_scroll_x = False sv.add_widget(ml) self.root.ids.teachers.add_widget(sv) self.root.ids.screen_manager.current = str(self.root.ids.teachers.name)
def scrollgridChat(Screen, components, pos, size): grid = GridLayout(cols=1, size_hint_y=None) grid.bind(minimum_height=grid.setter('height')) k = 0 for i in components: grid.add_widget(CBadge2(votes=str(i['votes']), k=k)) grid.add_widget(Mail(i['author'], i['comment'])) k = k + 1 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, **kwargs): self.donnees = kwargs.pop("donnees", None) super(Popup, self).__init__(**kwargs) ctrl_tableau = Tableau_totaux(donnees=self.donnees) ctrl_scroll = ScrollView() ctrl_scroll.add_widget(ctrl_tableau) ctrl_scroll.do_scroll_y = True ctrl_scroll.do_scroll_x = False ctrl_box = BoxLayout(orientation="vertical", padding=10) ctrl_box.add_widget(ctrl_scroll) self.add_widget(ctrl_box)
def __init__(self, *args, **kwargs): super(Popup, self).__init__(*args, **kwargs) self.donnees = kwargs.pop("donnees", None) ctrl_tableau = Tableau_totaux(donnees=self.donnees) ctrl_scroll = ScrollView() ctrl_scroll.add_widget(ctrl_tableau) ctrl_scroll.do_scroll_y = True ctrl_scroll.do_scroll_x = False ctrl_box = BoxLayout(orientation="vertical", padding=10) ctrl_box.add_widget(ctrl_scroll) self.add_widget(ctrl_box)
def subjects(self): self.conn = sqlite3.connect('SCHOOL.db') self.c = self.conn.cursor() self.all_subjects = self.c.execute('SELECT * FROM STUDENTS') sv = ScrollView() ml = MDList() for row in sorted(self.all_subjects): ml.add_widget( ThreeLineListItem(text=str(row[1]), secondary_text="id: " + str(row[0]) + '\n' 'under : ' + row[2])) sv.do_scroll_y = True sv.do_scroll_x = False sv.add_widget(ml) self.root.ids.subjects.add_widget(sv) self.root.ids.screen_manager.current = str(self.root.ids.subjects.name)
def __init__(self, **kwargs): super(MainScreen, self).__init__(**kwargs) table_header = [['ID', 'center', 'center', 'string', 0.1, 'hidden'], ['Field 01', 'center', 'left', 'option', 0.4, 'visible'], ['Field 02', 'center', 'right', 'number', 0.3, 'visible'], ['Field 03', 'center', 'right', 'coin', 0.2, 'visible']] table_body = [ ['01', 'Item 01', '12', '1.8'], ['02', 'Item 02', '43', '1.8'], ['03', 'Item 03', '3', '1.8'], ['04', 'Item 04', '23', '1.8'], ['05', 'Item 05', '12', '1.8'], ['06', 'Item 06', '23', '1.8']] table_footer = ['footer 01', 'footer 02', 'footer 03'] grid = DataGrid(table_header, table_body, '', '') # _size=(400, 500000) scroll = ScrollView(size_hint=(1, 1), scroll_y=0, pos_hint={'center_x': .5, 'center_y': .5}, effect_y=None, scroll_distance=0) scroll.add_widget(grid) scroll.do_scroll_y = True scroll.do_scroll_x = False self.children[0].add_widget(scroll) new_data = ['XX', 'Novo Produto', '1023', '2.12'] def add_new_row(self): grid.add_row(new_data) def remove_sel_row(self): grid.remove_selected_row() def select_all_cells(self): grid.select_all() def deselect_all_cells(self): grid.deselect_all() self.children[0].add_widget(Button(text="add row", on_release=add_new_row, size_hint_y=.2)) self.children[0].add_widget(Button(text="remove row", on_release=remove_sel_row, size_hint_y=.2)) self.children[0].add_widget(Button(text="select all", on_release=select_all_cells, size_hint_y=.2)) self.children[0].add_widget(Button(text="deselect all", on_release=deselect_all_cells, size_hint_y=.2))
def get_student(self, value): sv = ScrollView() ml = MDList() sv.add_widget(ml) get_student = self.c.execute( 'SELECT * FROM STUDENTS WHERE STUDENT_CLASS_NAME = ?', (value, )) for row in get_student: ml.add_widget(OneLineListItem(text=str(row[1]))) sv.do_scroll_y = True sv.do_scroll_x = False r = GridLayout(cols=1, rows=1) r.add_widget(sv) p = Popup(title='STUDENTS', size_hint=(.7, 0.7), background_color=(0, 0, .9, .5), auto_dismiss=True) p.add_widget(r) p.open()
def build(self, name, listGameMonsters): self.name = name self.listMonsters = listMonsters s = ScrollView(size_hint=(1, None), size=(Window.width, Window.height)) s.do_scroll_y = True s.do_scroll_x = False l = GridLayout(cols=4, spacing=[10, 5], size_hint_y=None, padding=[175, 100, 0, 0]) l.bind(minimum_height=l.setter('height')) i = 0.9 for monster in listGameMonsters: self.Img = Image(source='MHW_picture_FirstWindow.jpg', allow_stretch=True, keep_ratio=False) self.text = Label(text=monster.name) self.buttonToMonster = Button( text="", font_size='30sp', width=150, height=150, size_hint_y=None, background_normal='MHW_picture_FirstWindow.jpg') self.buttonToMonster.bind(on_press=self.pageToMonster) # On ajoute le bouton dans l'affichage: l.add_widget(self.text) l.add_widget(self.buttonToMonster) i -= 0.1 s.add_widget(l) self.add_widget(s) # On cree un bouton: self.buttonPreviousPage = Button(text='Go Back', font_size='30sp') self.buttonPreviousPage.pos_hint = {"x": 0.0, "y": 0.0} self.buttonPreviousPage.size_hint = (0.2, 0.1) self.buttonPreviousPage.bind(on_press=self.previousPage) # On ajoute le bouton dans l'affichage: self.add_widget(self.buttonPreviousPage) sm.add_widget(self)
def fill_accordion_item(self, store): storage_butt = AccordionItem() storage_butt.id = str(store.id) storage_butt.height = 22 storage_butt.title = str(store.name) scroll = ScrollView() scroll.do_scroll_x = False scroll.size_hint = (1, 1) scroll.bar_color = [.5, .10, .15, .8] scroll.bar_inactive_color = [.5, .20, .10, .5] scroll.scroll_type = ['bars'] # [‘bars’, ‘content’] tree_obj = TreeView() tree_obj.size_hint = (1, None) tree_obj.hide_root = True store.tree_view = WeakProxy(tree_obj) scroll.add_widget(tree_obj) storage_butt.add_widget(scroll) return storage_butt
def fill_menu_with_data(): # Necesary to flush old data airtable_content.clear_tabs() # Layout metadata to specify dimension and style airtable_content.orientation = "vertical" airtable_content.do_default_tab = False # Necesary to disable Default Tab that TabbedPanel generate automatically airtable_content.background_color = (0, 0, 1, .5) #50% translucent airtable_content.tab_width = 150 # Trigger airtable connection and data retrieval # tab_headers and tab_menus have all data needed to fill airtable_content fetch_airtable_data() # Creation of each Tab and their respective items for header in tab_headers: tab = TabbedPanelHeader(text=header) # Scrollview required to adequatly contain items without window or objec distortion # Effectively scroll through the menu effortlessly scroll = ScrollView() scroll.bar_margin = 10 scroll.size_hint = (1, 1) # Needed to allow scrollview to fit the window regarless od size scroll.scroll_type = ['bars', 'content'] # allow scrolling via the bar or by draging content scroll.bar_pos_y = 'left' scroll.bar_width = 20 scroll.bar_color = (5, 10, 15, 0.8) scroll.bar_inactive_color = (5, 20, 15, 0.8) scroll.do_scroll_y = True # Needed for vertical scrolling scroll.do_scroll_x = False scroll.scroll_y = 1 # Scrolling speed # Adding item specifically fitted for the current tab scroll.add_widget(format_airtable_data(header)) tab.content = scroll # adding scrollview with fitted items as content of the tab tab.content.orientation = "vertical" airtable_content.add_widget(tab) # adding the entirity of a tab page to the TabbedPanel
def new_back(self): # Popup for changing backgrounds val = '180dp' self.popup = Popup(title='Choose background', auto_dismiss=True, size_hint=(0.95, 0.62), separator_color=(0, 0, 1, 1), title_align='center', title_color=(1, 1, 1, 1), title_size='16sp', title_font='fonts/Fcarbim.ttf') scroll = ScrollView() scroll.size_hint = (1, 1) scroll.do_scroll_x = False scroll.do_scroll_y = True grd = GridLayout(cols=3, spacing='3dp') grd.size_hint = (1, None) grd.bind(minimum_height=grd.setter('height')) but1 = ImageButton( source='boc/BackOfCards.png', on_release=lambda x: self.receive('boc/BackOfCards.png'), size_hint=(1, None), height=val) but2 = ImageButton( source='boc/BackOfCards1.png', on_release=lambda x: self.receive('boc/BackOfCards1.png'), size_hint=(1, None), height=val) but3 = ImageButton( source='boc/BackOfCards2.png', on_release=lambda x: self.receive('boc/BackOfCards2.png'), size_hint=(1, None), height=val) but4 = ImageButton( source='boc/BackOfCards3.png', on_release=lambda x: self.receive('boc/BackOfCards3.png'), size_hint=(1, None), height=val) but5 = ImageButton( source='boc/BackOfCards4.png', on_release=lambda x: self.receive('boc/BackOfCards4.png'), size_hint=(1, None), height=val) but6 = ImageButton( source='boc/BackOfCards5.png', on_release=lambda x: self.receive('boc/BackOfCards5.png'), size_hint=(1, None), height=val) grd.add_widget(but1) grd.add_widget(but2) grd.add_widget(but3) grd.add_widget(but4) grd.add_widget(but5) grd.add_widget(but6) scroll.add_widget(grd) self.popup.add_widget(scroll) self.popup.open()
def build(self): self.config.read("scenes.txt") for section in self.config.sections(): self.scenes.append(section) for scene in self.scenes: print scene def button_press(x): self.currentIndex = int(x.text.split(".")[0]) - 1; l_current.text = "Current Selection: " + self.scenes[self.currentIndex] def sayHi(x): pass def scenePlus(x): self.currentIndex += 1 if self.currentIndex > len(self.scenes) - 1: self.currentIndex = len(self.scenes) - 1 l_current.text = "Current Selection: " + self.scenes[self.currentIndex] def sceneMinus(x): self.currentIndex -= 1 if self.currentIndex < 0: self.currentIndex = 0 l_current.text = "Current Selection: " + self.scenes[self.currentIndex] def go(x): self.go = True def stop(x): self.go = False def loop(x): if self.go: print self.scenes[self.currentIndex] #self.control = Control() Clock.schedule_interval(loop,0) layout = FloatLayout(size=(300, 300)) l_title = Label(text="Bellarmine College Prep",pos=(0,250), font_size='50sp') layout.add_widget(l_title) p_title = Label(text="Noises Off",pos=(0,200), font_size='30sp') layout.add_widget(p_title) with p_title.canvas: Line(points=[0, 460, 800, 460], width= 5) b_go = Button(text='Start',size_hint=(.15, .05),pos=(50, 400)) b_go.bind(on_release = go) layout.add_widget(b_go) b_stop = Button(text='Stop',size_hint=(.15, .05),pos=(200, 400)) b_stop.bind(on_release = stop) layout.add_widget(b_stop) b_sceneUp = Button(text='Scene Up',size_hint=(.15, .1),pos=(550, 300)) b_sceneUp.bind(on_release = sceneMinus) layout.add_widget(b_sceneUp) b_sceneDown = Button(text='Scene Down',size_hint=(.15, .1),pos=(550, 200)) b_sceneDown.bind(on_release=scenePlus) layout.add_widget(b_sceneDown) l_current = Label(text = "Current Selection: " + self.scenes[self.currentIndex], pos=(-250,-270)) layout.add_widget(l_current) glayout = GridLayout(cols=1, spacing=10, size_hint_y=None) #Make sure the height is such that there is something to scroll. glayout.bind(minimum_height=glayout.setter('height')) num = 0; for i in self.scenes: btn = Button(text=str(num + 1) + ". " + str(i), size_hint_y=None, height=40) btn.bind(on_release=button_press) glayout.add_widget(btn) num +=1; root = ScrollView(size_hint=(None, None), size=(300, 300), pos = (50,60)) root.do_scroll_x = False root.add_widget(glayout) layout.add_widget(root) return layout
def on_activated(self,*args): super(VirtualScreenManagerStack, self).on_activated(*args) print 'on activated', self.activated, self.current_screen SCALE = .6 if self.activated else 1 if self.activated: self.clear_widgets() grid = Carousel(size_hint = (1,1), width=.8*Window.width, x=.1*Window.width, direction="bottom") FloatLayout.add_widget(self,grid) for wrapper in self.wrappers.values(): print 'before', wrapper.size wrapper.scale=SCALE print 'after', wrapper.size if self.activated: wrapper.size_hint= None, None print 'adding wrapper of ', wrapper.height grid.add_widget(wrapper) else: self.children[0].remove_widget(wrapper) if not self.activated: self.clear_widgets() w= self.wrappers[self.current_screen] w.pos = 0,0 w.size_hint= 1,1 FloatLayout.add_widget(self, w) else: print "grid", grid.size, grid.pos, grid.size_hint return if 0: self.clear_widgets() sv = ScrollView() with sv.canvas.before: Color(.3,.3,.3) Rectangle(size=self.size, pos=self.pos) FloatLayout.add_widget(self,sv) grid= GridLayout() sv.do_scroll_x = self.activated sv.do_scroll_y = self.activated grid.rows = 1 if self.orientation=='horizontal' else None grid.cols = 1 if self.orientation=="vertical" else None grid.bind(minimum_height = grid.setter('height')) grid.bind(minimum_width = grid.setter('width')) grid.spacing = self.spacing sv.add_widget(grid) SCALE = .6 # if self.orientation == 'vertical': # attrName = "cols" # dh_name = "row_default_height" # default_value = SCALE*self.height #300 # size_hint=(1,None) # else: # attrName = "rows" # dh_name = "col_default_width" # default_value = 400 # size_hint=(None,1) # kwargs = {attrName:2, dh_name:default_value} # kwargs = {attrName:2} # kwargs = {attrName:1} # kwargs = {attrName:1, dh_name:default_value} # if self.orientation == 'vertical': # grid.height = len(self.content)*(SCALE*self.height+self.spacing) # else: # grid.width = len(self.content)*(SCALE*self.width + self.spacing) for sindex, screen in enumerate(self.content): wrapper = self.wrappers[screen] wrapper.size_hint = None,None wrapper.size = self.size if 1 or screen != self.current_screen: wrapper.scale = SCALE else: reducer = Animation(scale=SCALE, opacity=.5, duration=.3) reducer.start(wrapper) grid.add_widget(wrapper) #Clock.schedule_once(adder,.31) #if self.orientation=='vertical': # name = wrapper.screen_name or str(screen) # grid.add_widget(MagicLabel(target= wrapper, text=name, size = wrapper.size, texture_size = (800,600), size_hint_x=None, width=60)) ##if self.orientation =="horizontal": ## for screen in self.content: ## name = wrapper.screen_name or str(screen) ## grid.add_widget(MagicLabel(target= wrapper, text=name, size = wrapper.size, texture_size = (800,600), size_hint_y=None, height=30)) #scrool sv to proper height ##if self.orientation=="vertical": ## sv.scroll_y= 1- float(self.content.index(self.current_screen))/len(self.content) ##else: ## sv.scroll_x= float(self.content.index(self.current_screen))/len(self.content) else: sv = self.children[0] grid = sv.children[0] for screen in self.content: wrapper = self.wrappers[screen] grid.remove_widget(wrapper) self.clear_widgets() w = self.wrappers[self.current_screen] w.size_hint = 1,1 FloatLayout.add_widget(self,w) wrapper = self.wrappers[self.current_screen] expander = Animation(scale = 1, opacity=1, x=0, y=0, duration=.3) expander.start(wrapper)
markup=True, size_hint_y=None, height=40, id="Header_Label", size_hint_x=cols_size[n])) n+=1 grid = DataGrid(header, data, body_alignment, col_size) grid.rows = 10 scroll = ScrollView(size_hint=(1, 1), size=(400, 500000), scroll_y=0, pos_hint={'center_x':.5, 'center_y':.5}) scroll.add_widget(grid) scroll.do_scroll_y = True scroll.do_scroll_x = False pp = partial(grid.add_row, ['001', 'Teste', '4.00', '4.00'], body_alignment, col_size) add_row_btn = Button(text="Add Row", on_press=pp) del_row_btn = Button(text="Delete Row", on_press=partial(grid.remove_row, len(header))) upt_row_btn = Button(text="Update Row") slct_all_btn = Button(text="Select All", on_press=partial(grid.select_all)) unslct_all_btn = Button(text="Unselect All", on_press=partial(grid.unselect_all)) show_grid_log = Button(text="Show log", on_press=partial(grid.show_log)) ### def modal_insert(self): lbl1 = Label(text='ID', id="lbl") lbl2 = Label(text='Nome', id="lbl") lbl3 = Label(text='Preco', id="lbl")
n += 1 grid = DataGrid(header, data, body_alignment, col_size) grid.rows = 10 scroll = ScrollView(size_hint=(1, 1), size=(400, 500000), scroll_y=0, pos_hint={ 'center_x': .5, 'center_y': .5 }) scroll.add_widget(grid) scroll.do_scroll_y = True scroll.do_scroll_x = False pp = partial(grid.add_row, ['001', 'Teste', '4.00', '4.00'], body_alignment, col_size) add_row_btn = Button(text="Add Row", on_press=pp) del_row_btn = Button(text="Delete Row", on_press=partial(grid.remove_row, len(header))) upt_row_btn = Button(text="Update Row") slct_all_btn = Button(text="Select All", on_press=partial(grid.select_all)) unslct_all_btn = Button(text="Unselect All", on_press=partial(grid.unselect_all)) show_grid_log = Button(text="Show log", on_press=partial(grid.show_log)) ###
def grrid(self): grid = DataGrid(header, data, body_alignment, col_size) grid.rows = 10 scroll = ScrollView(size_hint=(1, 1), size=(400, 500000), scroll_y=0, pos_hint={ 'center_x': .5, 'center_y': .5 }) scroll.add_widget(grid) scroll.do_scroll_y = True scroll.do_scroll_x = False pp = partial(grid.add_row, ['001', 'Teste', '4.00', '4.00'], body_alignment, col_size) add_row_btn = Button(text="Add Row", on_press=pp) del_row_btn = Button(text="Delete Row", on_press=partial(grid.remove_row, len(header))) upt_row_btn = Button(text="Update Row") slct_all_btn = Button(text="Select All", on_press=partial(grid.select_all)) unslct_all_btn = Button(text="Unselect All", on_press=partial(grid.unselect_all)) show_grid_log = Button(text="Show log", on_press=partial(grid.show_log)) def modal_insert(self): lbl1 = Label(text='ID', id="lbl") lbl2 = Label(text='Nome', id="lbl") lbl3 = Label(text='Preco', id="lbl") lbl4 = Label(text='IVA', id="lbl") txt1 = TextInput(text='000', id="txtinp", input_filter='int') txt2 = TextInput(text='Product Name', id="txtinp") txt3 = TextInput(text='123.45', id="txtinp", input_filter='float') txt4 = TextInput(text='23', id="txtinp", input_filter='int') insertion_grid = GridLayout(cols=2) insertion_grid.add_widget(lbl1) insertion_grid.add_widget(txt1) insertion_grid.add_widget(lbl2) insertion_grid.add_widget(txt2) insertion_grid.add_widget(lbl3) insertion_grid.add_widget(txt3) insertion_grid.add_widget(lbl4) insertion_grid.add_widget(txt4) # create content and assign to the view content = Button(text='Close me!') modal_layout = BoxLayout(orientation="vertical") modal_layout.add_widget(insertion_grid) def insert_def(self): input_list = [] for text_inputs in reversed(self.parent.children[2].children): if text_inputs.id == "txtinp": input_list.append(text_inputs.text) print(input_list) grid.add_row(input_list, body_alignment, col_size, self) # print view # view.dismiss insert_btn = Button(text="Insert", on_press=insert_def) modal_layout.add_widget(insert_btn) modal_layout.add_widget(content) view = ModalView(auto_dismiss=False) view.add_widget(modal_layout) # bind the on_press event of the button to the dismiss function content.bind(on_press=view.dismiss) insert_btn.bind(on_release=view.dismiss) view.open() add_custom_row = Button(text="Add Custom Row", on_press=modal_insert) ### def json_fill(self): for d in data: print(d) self.grid.add_row(d, body_alignment, col_size, self) json_fill_btn = Button(text="JSON fill", on_press=partial(json_fill)) btn_grid = BoxLayout(orientation="vertical") rnk = Button(text=' Rank', size_hint_y=None, height='48dp') rnk1 = Button(text=' Fraction', size_hint_y=None, height='48dp') rnk2 = Button(text=' Predicted', size_hint_y=None, height='48dp') rnk3 = Button(text=' Analog', size_hint_y=None, height='48dp') rnk4 = Button(text=' PopLog', size_hint_y=None, height='48dp') rnk5 = Button(text=' Residual', size_hint_y=None, height='48dp') rnk6 = Button(text=' Settlement Index', size_hint_y=None, height='48dp') rnk7 = Button(text=' Sphere of Influence', size_hint_y=None, height='48dp') backhome = Button(text='back home') btn_grid.add_widget(add_custom_row) btn_grid.add_widget(del_row_btn) btn_grid.add_widget(upt_row_btn) btn_grid.add_widget(slct_all_btn) btn_grid.add_widget(unslct_all_btn) btn_grid.add_widget(rnk) btn_grid.add_widget(rnk1) btn_grid.add_widget(rnk2) btn_grid.add_widget(rnk3) btn_grid.add_widget(rnk4) btn_grid.add_widget(rnk5) btn_grid.add_widget(rnk6) btn_grid.add_widget(rnk7) btn_grid.add_widget(backhome) root = BoxLayout(orientation="horizontal") root.add_widget(scroll) root.add_widget(btn_grid) f = Popup(content=root, title='SETTLEMENT STUDIES') backhome.bind(on_press=f.dismiss) f.open()