def get_batch_grid(items, batch_size, titles): layout = widgets.Layout( width="100%", grid_template_columns=" ".join([f"{int(100 / batch_size)}%"] * batch_size), ) return widgets.GridBox([item.render() for item in items], layout=layout)
def get_row(items: List[Renderable]) -> widgets.GridBox: if len(items) == 1: layout = widgets.Layout(width="100%", grid_template_columns="100%") elif len(items) == 2: layout = widgets.Layout(width="100%", grid_template_columns="50% 50%") elif len(items) == 3: layout = widgets.Layout(width="100%", grid_template_columns="25% 25% 50%") elif len(items) == 4: layout = widgets.Layout(width="100%", grid_template_columns="25% 25% 25% 25%") else: raise ValueError("Layout undefined for this number of columns") return widgets.GridBox([item.render() for item in items], layout=layout)
def pack(self, children, layout, template_rows="auto auto auto", template_columns="33% 34% 33%", name="grid", width="100%"): return widgets.GridBox(children=children, layout=widgets.Layout( width=width, grid_gap='0px 0px', grid_template_rows=template_rows, grid_template_columns=template_columns, grid_template_areas=layout, grid_area=name))
def get_batch_grid(items: List[Renderable], batch_size: int, titles: bool, subtitles: bool) -> widgets.GridBox: layout = widgets.Layout( width="100%", grid_template_columns=" ".join([f"{int(100 / batch_size)}%"] * batch_size), ) out = [] for item in items: if subtitles: out.append( widgets.VBox([ widgets.HTML(f"<h5><em>{ item.name }</em></h5>"), item.render() ])) elif titles: out.append( widgets.VBox( [widgets.HTML(f"<h4>{ item.name }</h4>"), item.render()])) else: out.append(item.render()) return widgets.GridBox(out, layout=layout)
def get_row(items): layout = widgets.Layout(width="100%", grid_template_columns="75% 25%") return widgets.GridBox([item for item in items], layout=layout)
def get_row(items: List[widgets.Widget]) -> widgets.GridBox: layout = widgets.Layout(width="100%", grid_template_columns="75% 25%") return widgets.GridBox(items, layout=layout)
def initiate(self): tab_children = [] ########################### # data 1 box d1_vbox_childs = [] ## ### d1_button_next = widgets.Button(description='next measurement') d1_button_prev = widgets.Button(description='prev measurement') d1_button_next.on_click(self.on_d1_botton_next) d1_button_prev.on_click(self.on_d1_botton_prev) d1_dropdown_fnames_options = [ i.name for i in self.controller.data.dataset1.path2data_list ] d1_dropdown_fnames_value = self.controller.data.dataset1.path2active.name self.d1_dropdown_fnames = widgets.Dropdown( options=d1_dropdown_fnames_options, value=d1_dropdown_fnames_value, # description='N', # disabled=disable_data_2, ) self.d1_dropdown_fnames.observe(self.on_change_d1_dropdown_fnames) d1_box_h_1 = widgets.HBox( [d1_button_prev, d1_button_next, self.d1_dropdown_fnames]) ### d1_vbox_childs.append(d1_box_h_1) ## ### d1_text_path = widgets.Text(placeholder='path name', disabled=False) self.d1_text_path = d1_text_path d1_vbox_childs.append(d1_text_path) ## d1_vbox = widgets.VBox(d1_vbox_childs) tab_children.append({'element': d1_vbox, 'title': 'iMet'}) ############################ # data 2 box if isinstance(self.controller.data.dataset2, type(None)): disable_data_2 = True d2_dropdown_fnames_options = [] d2_dropdown_fnames_value = None else: disable_data_2 = False d2_dropdown_fnames_options = [ i.name for i in self.controller.data.dataset2.path2data_list ] d2_dropdown_fnames_value = self.controller.data.dataset2.path2active.name d2_vbox_childs = [] ## ### d2_button_next = widgets.Button(description='next measurement', disabled=disable_data_2) d2_button_prev = widgets.Button(description='prev measurement', disabled=disable_data_2) self.d2_dropdown_fnames = widgets.Dropdown( options=d2_dropdown_fnames_options, value=d2_dropdown_fnames_value, # description='N', disabled=disable_data_2, ) d2_button_next.on_click(self.on_d2_botton_next) d2_button_prev.on_click(self.on_d2_botton_prev) self.d2_dropdown_fnames.observe(self.on_change_d2_dropdown_fnames) d2_box_h_1 = widgets.HBox( [d2_button_prev, d2_button_next, self.d2_dropdown_fnames]) ### d2_vbox_childs.append(d2_box_h_1) ## ### ## text field showing the path d2_text_path = widgets.Text(placeholder='path name', disabled=False) self.d2_text_path = d2_text_path d2_vbox_childs.append(d2_text_path) ## d2_vbox = widgets.VBox(d2_vbox_childs) tab_children.append({'element': d2_vbox, 'title': 'POPS'}) # others box # Tab tab = widgets.Tab([child['element'] for child in tab_children]) for e, child in enumerate(tab_children): tab.set_title(e, child['title']) # accordeon txt = 'keymap:\t' txt += ' - '.join([ '{}:{}'.format(i[0], i[1]) for i in self.controller.view.plot.keymap.items() ]) box_layout = widgets.Layout(border='solid 1px') description = widgets.Box((widgets.Label(txt), ), layout=box_layout) # items = [widgets.Label('change point'), widgets.Label('followed by'), widgets.Label('')] self.gridbox = widgets.GridBox( [], layout=widgets.Layout(grid_template_columns="repeat(3, 200px)")) self.populate_gridbox_from_database() self.controller.tp_gb = self.gridbox self.button_gridbox_reinitiate = widgets.Button( description='sort by datetime') self.button_gridbox_reinitiate.on_click( self.populate_gridbox_from_database) # the old one # self.accordeon_start = widgets.Text(value='', # placeholder='hit z key', # description='start:', # disabled=False # ) # self.accordeon_end = widgets.Text(value='', # placeholder='hit x key', # description='end:', # disabled=False # ) # self.accordeon_alt = widgets.Text(value='', # placeholder='hit a key', # description='altitude:', # disabled=False # ) # hbox_accordeon_start_stop = widgets.HBox([self.accordeon_start, self.accordeon_end]) # self.dropdown_gps_bar_bad= widgets.Dropdown(options=['gps', 'baro', 'bad', 'bad_but_usable_gps', 'bad_but_usable_baro'], # value='gps', # description='which alt to use:', # disabled=False, # ) # self.button_save_unsave_flight = widgets.Button(description = 'save/unsave flight') # self.button_save_unsave_flight.on_click(self.on_button_save_flight) # hbox_accordeon_alt_source = widgets.HBox([self.dropdown_gps_bar_bad, self.accordeon_alt]) accordon_box = widgets.VBox( [description, self.button_gridbox_reinitiate, self.gridbox] ) #,hbox_accordeon_start_stop, hbox_accordeon_alt_source, self.button_save_unsave_flight]) accordion_children = [accordon_box] accordion = widgets.Accordion(children=accordion_children) accordion.set_title(0, 'do_stuff') # messages self.messages = widgets.Textarea('\n'.join(self.controller._message), layout={'width': '100%'}) # message_box = widgets.HBox([self.messages]) # OverVbox overVbox = widgets.VBox([tab, accordion, self.messages]) display(overVbox) #################### self.update_d1() self.update_d2() self.update_accordeon()
def make_horizontal_box(children, layout=Layout()): "Make a grid box with `children` and `layout`." return widgets.GridBox(children, layout=layout)