def create_dropdown(name): dd = Dropdown(value=value, options=trait.values) def callback(dummy, value): setattr(obj, name, value) dd.on_trait_change(callback, 'value') items.append(dd)
class UQVar: def __init__(self, name, label, state, a, b=1): self.name = name self.label = label self.w = Dropdown(options=['Exact', 'Gaussian', 'Uniform'], description='%s:' % label, value=state) self.w1 = FloatText(value=a, description='mean:') self.w2 = FloatText(value=b, description='dev:') self.form = VBox(children=[self.w, self.w1, self.w2], padding=10, border_width=5) self.w.on_trait_change(self.on_value_change, 'value') self.on_value_change('') def on_value_change(self, v): value = self.w.value if value == 'Exact': self.w2.visible = False self.w1.description = 'value:' elif value == 'Gaussian': self.w1.description = 'mean:' self.w2.description = 'dev:' self.w2.visible = True else: self.w1.description = 'min:' self.w2.description = 'max:' self.w2.visible = True @property def value(self): value = self.w.value if value == 'Exact': return [self.name, self.label, self.w1.value] if value == 'Gaussian': return puq.NormalParameter(self.name, self.label, mean=self.w1.value, dev=self.w2.value) if value == 'Uniform': return puq.UniformParameter(self.name, self.label, min=self.w1.value, max=self.w2.value) return None
def file_loading(name, old, new): """Update self.model when user requests a list of files to be uploaded""" traits = [("value_{}".format(i), Unicode(sync=True)) for i in range(len(new))] file_widget.add_traits(**dict(traits)) for i in range(len(new)): file_widget.on_trait_change(file_loaded, "value_{}".format(i)) # file_names are uniqe, we ignore any duplicates old_fnames = self.model.file_names file_names = [fn for fn in new if fn not in old_fnames] old_len = len(old_fnames) new_len = len(file_names) self.model.file_names.extend(file_names) self.model.atom_types.extend(["H" for i in range(new_len)]) self.model.centrum_nums.extend([[1, 1, 1] for i in range(new_len)]) old_children = list(upload_area.children) new_children = [] options = {"-": 0} for i, file_name in zip(range(old_len, new_len), file_names): j = "_{}".format(i) element_picker = Dropdown( description=file_name, value="", options=[""], color="Black", height=32, width=32, font_size=14 ) element_picker.add_traits(**{j: Unicode(sync=True)}) link((element_picker, "value"), (element_picker, j)) element_picker.on_trait_change(centrum_changed, j) atomnum_picker1 = Dropdown(options=options, value=0, color="Black", height=32, font_size=14) atomnum_picker2 = Dropdown(options=options, value=0, color="Black", height=32, font_size=14) atomnum_picker3 = Dropdown(options=options, value=0, color="Black", height=32, font_size=14) link((atomnum_picker1, "options"), (atomnum_picker2, "options")) link((atomnum_picker2, "options"), (atomnum_picker3, "options")) atomnum_picker1.add_traits(**{j: Int(sync=True)}) atomnum_picker2.add_traits(**{j: Int(sync=True)}) atomnum_picker3.add_traits(**{j: Int(sync=True)}) link((atomnum_picker1, "value"), (atomnum_picker1, j)) link((atomnum_picker2, "value"), (atomnum_picker2, j)) link((atomnum_picker3, "value"), (atomnum_picker3, j)) atomnum_picker1.on_trait_change(atomnum_changed, j) atomnum_picker2.on_trait_change(atomnum_changed, j) atomnum_picker3.on_trait_change(atomnum_changed, j) line = HBox([element_picker, atomnum_picker1, atomnum_picker2, atomnum_picker3]) new_children.append(line) upload_area.children = old_children + new_children
import matplotlib.font_manager as fm font_list = fm.findSystemFonts(fontpaths=None, fontext='ttf') f = [f.name for f in fm.fontManager.ttflist] print(f) from collections import OrderedDict from IPython.display import (display, clear_output, YouTubeVideo) from ipywidgets import Dropdown dw = Dropdown( options=OrderedDict([('SciPy 2016', 'Ejh0ftSjk6g'), ('PyCon 2016', 'YgtL4S7Hrwo')])) from collections import OrderedDict from IPython.display import (display, clear_output, YouTubeVideo) from ipywidgets import Dropdown dw = Dropdown( options=OrderedDict([('SciPy 2016', 'Ejh0ftSjk6g'), ('PyCon 2016', 'YgtL4S7Hrwo')])) def on_value_change(name, val): clear_output() display(YouTubeVideo(val)) dw.on_trait_change(on_value_change, 'value') dw.value = dw.options['SciPy 2016'] display(dw)