Exemple #1
0
            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)
Exemple #2
0
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
Exemple #3
0
        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)