#!/usr/bin/env python # coding: utf-8 # In[ ]: flex_subtitle = "built using jupyter-flex" flex_external_link = "https://github.com/danielfrg/jupyter-flex/blob/master/examples/widgets/widgets-gallery.ipynb" flex_vertical_layout = "scroll" flex_show_source = True # # Page 1 # ## Row 1 - Numeric Widgets # ### Int Slider # In[ ]: import ipywidgets as widgets # In[ ]: widget = widgets.IntSlider( value=7, min=0, max=10, step=1, description='', disabled=False, continuous_update=False, orientation='horizontal', readout=True, readout_format='d' ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Float Slider # In[ ]: widget = widgets.FloatSlider( value=7.5, min=0, max=10.0, step=0.1, description='', disabled=False, continuous_update=False, orientation='horizontal', readout=True, readout_format='.1f', ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Float Log Slider # In[ ]: widget = widgets.FloatLogSlider( value=10, base=10, min=-10, # max exponent of base max=10, # min exponent of base step=0.2, # exponent step description='' ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ## Row 2 - Numeric Widgets # ### Int Range Slider # In[ ]: widget = widgets.IntRangeSlider( value=[5, 7], min=0, max=10, step=1, description='', disabled=False, continuous_update=False, orientation='horizontal', readout=True, readout_format='d', ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Float Range Slider # In[ ]: widget = widgets.FloatRangeSlider( value=[4.5, 7.5], min=0, max=10.0, step=0.1, description='', disabled=False, continuous_update=False, orientation='horizontal', readout=True, readout_format='.1f', ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Int Progress # In[ ]: widget = widgets.IntProgress() control = widgets.IntSlider(description="Control", value=77) widgets.link((control, 'value'), (widget, 'value')) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, control, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Float Progress # In[ ]: widget = widgets.FloatProgress() control = widgets.FloatSlider(description="Control", value=31.51) widgets.link((control, 'value'), (widget, 'value')) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, control, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ## Row 3 - Numeric Widgets # ### Bounded Int Text # In[ ]: widget = widgets.BoundedIntText( value=7, min=0, max=10, step=1, description='From [0-10]:', ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Bounded Float Text # In[ ]: widget = widgets.BoundedFloatText( value=7.5, min=0, max=10.0, step=0.1, description='From [0-10]:', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Int Text # In[ ]: widget = widgets.IntText( value=7, description='Any:', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Float Text # In[ ]: widget = widgets.FloatText( value=3.3, description='Any:', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ## Row 4 - Boolean Widgets # ### Toggle Button # In[ ]: widget = widgets.ToggleButton( value=False, description='Click me', disabled=False, button_style='', # 'success', 'info', 'warning', 'danger' or '' tooltip='Description', icon='check' # (FontAwesome names without the `fa-` prefix) ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Checkbox # In[ ]: widget = widgets.Checkbox( value=False, description='Check me', disabled=False, indent=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Valid # The valid widget provides a read-only indicator. # In[ ]: get_ipython().run_line_magic('pinfo', 'widgets.Valid') # In[ ]: widget = widgets.Valid( value=False, description='Valid:', ) control = widgets.Checkbox(description="Control") widgets.link((control, 'value'), (widget, 'value')) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, control, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ## Row 5 - Selection Widgets # ### Dropdown # In[ ]: widget = widgets.Dropdown( options=['1', '2', '3'], value='2', description='Number:', disabled=False, ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Radio Buttons # In[ ]: widget = widgets.RadioButtons( options=['pepperoni', 'pineapple', 'anchovies'], # value='pineapple', # Defaults to 'pineapple' layout={'width': 'max-content'}, # If the items' names are long description='Pizza topping:', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Select # In[ ]: widget = widgets.Select( options=['Linux', 'Windows', 'OSX'], value='OSX', # rows=10, description='OS:', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ## Row 6 - Selection Widgets # ### Selection Slider # In[ ]: widget = widgets.SelectionSlider( options=['scrambled', 'sunny side up', 'poached', 'over easy'], value='sunny side up', description='I like my eggs ...', disabled=False, continuous_update=True, orientation='horizontal', readout=True ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### SelectionRangeSlider # In[ ]: import datetime dates = [datetime.date(2015,i,1) for i in range(1,13)] options = [(i.strftime('%b'), i) for i in dates] # In[ ]: widget = widgets.SelectionRangeSlider( options=options, index=(0,11), description='Months (2015)', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Toggle Buttons # In[ ]: widget = widgets.ToggleButtons( options=['Slow', 'Regular', 'Fast'], description='Speed:', disabled=False, button_style='', # 'success', 'info', 'warning', 'danger' or '' tooltips=['Description of slow', 'Description of regular', 'Description of fast'], # icons=['check'] * 3 ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Select Multiple # In[ ]: widget = widgets.SelectMultiple( options=['Apples', 'Oranges', 'Pears'], value=['Oranges'], #rows=10, description='Fruits', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # # Page 2 # ## Row 1 - String widgets # ### Text # In[ ]: widget = widgets.Text( value='Hello World', placeholder='Type something', description='String:', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Text Area # In[ ]: widget = widgets.Textarea( value='Hello World', placeholder='Type something', description='String:', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Combobox # In[ ]: widget = widgets.Combobox( # value='John', placeholder='Choose Someone from: Paul, John, George, Ringo', options=['Paul', 'John', 'George', 'Ringo'], description='', ensure_option=True, disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Password # In[ ]: widget = widgets.Password( value='password', placeholder='Enter password', description='Password:', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ## Row 2 - String widgets # ### Label # The Label widget is the one used in this dashboard to display the values of the other widgets. # In[ ]: widget = widgets.Label() control = widgets.Text(description="Control", value="Some text...") widgets.link((control, 'value'), (widget, 'value')) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, control, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### HTML # In[ ]: widget = widgets.HTML( value="Hello World", placeholder='Some HTML', description='Some HTML', ) control = widgets.Textarea(description="Control", value="Hello World woooo") widgets.link((control, 'value'), (widget, 'value')) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, control, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### HTML Math # In[ ]: widget = widgets.HTMLMath( value=r"Some math and HTML: \(x^2\) and $$\frac{x+1}{x-1}$$", placeholder='Some HTML', description='Some HTML', ) control = widgets.Textarea(description="Control", value="Some math and HTML: \(x^2\) and $$\frac{x+1}{x-1}$$") widgets.link((control, 'value'), (widget, 'value')) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, control, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ## Row 3 - Other # ### Image # In[ ]: url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Jupyter_logo.svg/883px-Jupyter_logo.svg.png' widget = widgets.Image.from_url(url) widget.width = "100px" display(widget) # ### Button # In[ ]: widgets.Button( description='Click me', disabled=False, button_style='', # 'success', 'info', 'warning', 'danger' or '' tooltip='Click me', icon='check' # (FontAwesome names without the `fa-` prefix) ) # ### Play (Animation) # In[ ]: widget = widgets.Play( value=50, min=0, max=100, step=1, interval=100, description="Press play", disabled=False ) value_lbl = widgets.IntSlider() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ## Row 4 - Other # ### Date picker # In[ ]: widget = widgets.DatePicker( description='Pick a Date', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### Color Picker # In[ ]: widget = widgets.ColorPicker( concise=False, description='Pick a color', value='blue', disabled=False ) value_lbl = widgets.Label() transform = lambda x: str(x) widgets.dlink((widget, 'value'), (value_lbl, 'value'), transform) display(widget, widgets.HBox([widgets.Label("Current Value:"), value_lbl]) ) # ### File upload # In[ ]: widgets.FileUpload( accept='', # Accepted file extension e.g. '.txt', '.pdf', 'image/*', 'image/*,.pdf' multiple=False # True to accept multiple files upload else False ) # # Layout # ## Row 1 # ### Box # In[ ]: items = [widgets.Label(str(i)) for i in range(4)] widgets.Box(items) # ### HBox # In[ ]: items = [widgets.Label(str(i)) for i in range(4)] widgets.HBox(items) # ### VBox # In[ ]: items = [widgets.Label(str(i)) for i in range(4)] left_box = widgets.VBox([items[0], items[1]]) right_box = widgets.VBox([items[2], items[3]]) widgets.HBox([left_box, right_box]) # ### Grid Box # In[ ]: items = [widgets.Label(str(i)) for i in range(8)] widgets.GridBox(items, layout=widgets.Layout(grid_template_columns="repeat(3, 100px)")) # ## Row 2 # In[ ]: accordion = widgets.Accordion(children=[widgets.IntSlider(), widgets.Text()]) accordion.set_title(0, 'Slider') accordion.set_title(1, 'Text') accordion # ### Tabs # In[ ]: tab_contents = ['P0', 'P1', 'P2', 'P3', 'P4'] children = [widgets.Text(description=name) for name in tab_contents] tab = widgets.Tab() tab.children = children for i in range(len(children)): tab.set_title(i, str(i)) tab # ### Nesting tabs and accordions # In[ ]: tab_nest = widgets.Tab() tab_nest.children = [accordion, accordion] tab_nest.set_title(0, 'An accordion') tab_nest.set_title(1, 'Copy of the accordion') tab_nest # In[ ]: