本文整理汇总了Python中traitlets.link方法的典型用法代码示例。如果您正苦于以下问题:Python traitlets.link方法的具体用法?Python traitlets.link怎么用?Python traitlets.link使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类traitlets
的用法示例。
在下文中一共展示了traitlets.link方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def __init__(self, mol):
super().__init__(mol)
self.selection_type = ipy.Dropdown(description='Clicks select:',
value=self.viewer.selection_type,
options=('Atom', 'Residue', 'Chain'))
traitlets.link((self.selection_type, 'value'), (self.viewer, 'selection_type'))
self.residue_listname = ipy.Label('Selected residues:', layout=ipy.Layout(width='100%'))
self.residue_list = ipy.SelectMultiple(options=list(), height='150px')
self.viewer.observe(self._update_reslist, 'selected_atom_indices')
self.residue_list.observe(self.remove_atomlist_highlight, 'value')
self.atom_list.observe(self.remove_reslist_highlight, 'value')
self.subtools.children = [self.representation_buttons]
self.subtools.layout.flex_flow = 'column'
self.toolpane.children = [self.selection_type,
HBox([self.select_all_atoms_button, self.select_none]),
self.atom_listname,
self.atom_list,
self.residue_listname,
self.residue_list]
示例2: __init__
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def __init__(self, format=None, *args, **kwargs):
description = kwargs.pop('description', 'FloatSlider')
min = kwargs.setdefault('min', 0.0)
max = kwargs.setdefault('max', 10.0)
self.formatstring = format
self.header = ipy.HTML()
self.readout = ipy.Text(layout=ipy.Layout(width='100px'))
self.readout.on_submit(self.parse_value)
kwargs.setdefault('readout', False)
self.slider = ipy.FloatSlider(*args, **process_widget_kwargs(kwargs))
self.minlabel = ipy.HTML(u'<font size=1.5>{}</font>'.format(self.formatstring.format(min)))
self.maxlabel = ipy.HTML(u'<font size=1.5>{}</font>'.format(self.formatstring.format(max)))
self.sliderbox = HBox([self.minlabel, self.slider, self.maxlabel])
traitlets.link((self, 'description'), (self.header, 'value'))
traitlets.link((self, 'value'), (self.slider, 'value'))
self.description = description
self.update_readout()
super().__init__([self.header,
self.readout,
self.sliderbox])
示例3: __init__
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def __init__(self, *args, **kwargs):
self._select = Dropdown(*args,**kwargs)
self._edit = Button(description='...',
layout=Layout(width='15px'))
self._composite = HBox([self._select,self._edit])
super(DropdownWithEdit, self).__init__()
self.layout = self._composite.layout
# so that others looking at this widget's value get the
# dropdown's value
traitlets.link((self._select,'value'),(self,'value'))
self._edit.on_click(lambda _: editor(self._select.value))
self._select.observe(lambda e: self._set_editable(e['new']),'value')
self._set_editable(self._select.value)
示例4: make_controls
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def make_controls(self):
self.playbutton = ipy.Play(value=0,
min=0,
max=self.traj.num_frames-1)
self.slider = ipy.IntSlider(value_selects='framenum', value=0,
description='Frame:', min=0, max=len(self.traj)-1,
readout=False)
self.readout = ipy.HTML(value='/%d' % (self.traj.num_frames - 1))
self.annotation = ipy.HTML()
traitlets.link((self.playbutton, 'value'), (self.slider, 'value'))
traitlets.link((self.slider, 'value'), (self, 'current_frame'))
return VBox((self.annotation,
HBox((self.playbutton, self.slider, self.readout))))
示例5: show_training
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def show_training(self, div_id, div_costs_curve, cost_values) :
#div_id = self.show(*args, **kwargs)
def change_frame(w) :
#print(w)
updates = self.get_frame(w-1)
script = ''
for i in range(len(updates[0])) :
jupdate = json.dumps(updates[0][i], cls=utils.PlotlyJSONEncoder)
jupdate_cost = json.dumps(dict(x = [[w]], y = [[cost_values[w-1]]]), cls=utils.PlotlyJSONEncoder)
script = script \
+ 'Plotly.restyle("{id}", {update}, [{index}]);'.format(
id=div_id,
update=jupdate, index = updates[1][i]) \
+ 'Plotly.restyle("{id}", {update}, [{index}]);'.format(
id=div_costs_curve,
update=jupdate_cost, index = 1)
update_str = (
'<script type="text/javascript">' +
'window.PLOTLYENV=window.PLOTLYENV || {{}};' +
'window.PLOTLYENV.BASE_URL="' + 'https://plot.ly' + '";' +
'{script}' +
'</script>').format(script=script)
#print(script)
display(HTML(update_str))
#print(self.frames)
maxframe = len(self.frames) - 1
play = Play(value=maxframe)
slider = IntSlider(min=1, max=maxframe, step=1, value=maxframe,continuous_update=False)
slider.layout.width = '100%'
#jslink((play, 'value'), (slider, 'value'))
traitlets.link((play, 'value'), (slider, 'value'))
hb = HBox([play, slider])
slider.observe((lambda iteration : change_frame(iteration['new'])), names='value')
change_frame(maxframe)
#play.observe((lambda iteration : print(iteration['new'])), names='value')
#display(hb)
return hb
示例6: link_widgets
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def link_widgets(self) :
self.w_manifold_type.observe(self.on_manifold_type_change, names='value')
self.w_create_manifold.on_click(self.create_manifold)
self.w_choose_hypertemplate.on_click(self.choose_hypertemplate)
self.w_choose_data.on_click(self.choose_data)
self.w_create_model.on_click(self.create_model)
self.w_train.on_click(self.train_model)
self.w_show.on_click(self.show_model)
traitlets.link((self.w_niterations, 'value'), (self.w_iterations, 'max'))
# Energy update
self.w_template_type.observe(self.update_energy_latex, names='value')
self.w_reg_hypertemplate.observe(self.update_energy_latex, names='value')
self.w_sigma_reg_hypertemplate.observe(self.update_energy_latex, names='value')
self.w_gamma_V0.observe(self.update_energy_latex, names='value')
self.w_sigma_V0.observe(self.update_energy_latex, names='value')
self.w_shooting_dim_constraint.observe(self.update_energy_latex, names='value')
self.w_gamma_V.observe(self.update_energy_latex, names='value')
self.w_frechet_exponent.observe(self.update_energy_latex, names='value')
self.w_data_attachment.observe(self.update_energy_latex, names='value')
self.w_gamma_W.observe(self.update_energy_latex, names='value')
# Algorithm update
self.w_X0_gradient_distribution.observe(self.update_algorithm_latex, names='value')
self.w_X0_descent_mode.observe(self.update_algorithm_latex, names='value')
self.w_X0_descent_speed.observe(self.update_algorithm_latex, names='value')
self.w_Xi_gradient_distribution.observe(self.update_algorithm_latex, names='value')
self.w_Xi_descent_mode.observe(self.update_algorithm_latex, names='value')
self.w_Xi_descent_speed.observe(self.update_algorithm_latex, names='value')
self.w_Ei_gradient_distribution.observe(self.update_algorithm_latex, names='value')
self.w_Ei_descent_mode.observe(self.update_algorithm_latex, names='value')
self.w_Ei_descent_speed.observe(self.update_algorithm_latex, names='value')
self.w_descent_stopping_criterion.observe(self.update_algorithm_latex, names='value')
self.w_niterations.observe(self.update_algorithm_latex, names='value')
self.w_descent_threshold.observe(self.update_algorithm_latex, names='value')
self.update_energy_latex()
self.update_algorithm_latex()
示例7: create_settings
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def create_settings(box):
"Creates a widget Container for settings and info of a particular slider."
_, slider, sl_units = box.children
enable = widgets.Checkbox(value=box.visible, width="3ex")
link((box, 'visible'), (enable, 'value'))
def slider_link(obj, attr):
"Function to link one object to an attr of the slider."
# pylint: disable=unused-argument
def link_fn(name, new_value):
"How to update the object's value given min/max on the slider. "
if new_value >= slider.max:
slider.max = new_value
# if any value is greater than the max, the max slides up
# however, this is not held true for the minimum, because
# during typing the max or value will grow, and we don't want
# to permanently anchor the minimum to unfinished typing
if attr == "max" and new_value <= slider.value:
if slider.max >= slider.min:
slider.value = new_value
else:
pass # bounds nonsensical, probably because we picked up
# a small value during user typing.
elif attr == "min" and new_value >= slider.value:
slider.value = new_value
setattr(slider, attr, new_value)
slider.step = (slider.max - slider.min)/24.0
obj.on_trait_change(link_fn, "value")
link((slider, attr), (obj, "value"))
text_html = "<span class='form-control' style='width: auto;'>"
setvalue = widgets.FloatText(value=slider.value,
description=slider.description)
slider_link(setvalue, "value")
fromlabel = widgets.HTML(text_html + "from")
setmin = widgets.FloatText(value=slider.min, width="10ex")
slider_link(setmin, "min")
tolabel = widgets.HTML(text_html + "to")
setmax = widgets.FloatText(value=slider.max, width="10ex")
slider_link(setmax, "max")
units = widgets.Label()
units.width = "6ex"
units.font_size = "1.165em"
link((sl_units, 'value'), (units, 'value'))
descr = widgets.HTML(text_html + slider.varkey.descr.get("label", ""))
descr.width = "40ex"
return widgets.HBox(children=[enable, setvalue, units, descr,
fromlabel, setmin, tolabel, setmax],
width="105ex")
示例8: figure
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def figure(
key=None,
width=400,
height=500,
lighting=True,
controls=True,
controls_vr=False,
controls_light=False,
debug=False,
**kwargs
):
"""Create a new figure if no key is given, or return the figure associated with key.
:param key: Python object that identifies this figure
:param int width: pixel width of WebGL canvas
:param int height: .. height ..
:param bool lighting: use lighting or not
:param bool controls: show controls or not
:param bool controls_vr: show controls for VR or not
:param bool debug: show debug buttons or not
:return: :any:`Figure`
"""
if key is not None and key in current.figures:
current.figure = current.figures[key]
current.container = current.containers[key]
elif isinstance(key, ipv.Figure) and key in current.figures.values():
key_index = list(current.figures.values()).index(key)
key = list(current.figures.keys())[key_index]
current.figure = current.figures[key]
current.container = current.containers[key]
else:
current.figure = ipv.Figure(width=width, height=height, **kwargs)
current.container = ipywidgets.VBox()
current.container.children = [current.figure]
if key is None:
key = uuid.uuid4().hex
current.figures[key] = current.figure
current.containers[key] = current.container
if controls:
# stereo = ipywidgets.ToggleButton(value=current.figure.stereo, description='stereo', icon='eye')
# l1 = ipywidgets.jslink((current.figure, 'stereo'), (stereo, 'value'))
# current.container.children += (ipywidgets.HBox([stereo, ]),)
pass # stereo and fullscreen are now include in the js code (per view)
if controls_vr:
eye_separation = ipywidgets.FloatSlider(value=current.figure.eye_separation, min=-10, max=10, icon='eye')
ipywidgets.jslink((eye_separation, 'value'), (current.figure, 'eye_separation'))
current.container.children += (eye_separation,)
if controls_light:
globals()['controls_light']()
if debug:
show = ipywidgets.ToggleButtons(options=["Volume", "Back", "Front", "Coordinate"])
current.container.children += (show,)
# ipywidgets.jslink((current.figure, 'show'), (show, 'value'))
traitlets.link((current.figure, 'show'), (show, 'value'))
return current.figure
示例9: draw
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def draw(group, width=None, height=None, show_2dhydrogens=None, display=False,
**kwargs):
""" Visualize this molecule (Jupyter only).
Creates a 3D viewer, and, for small molecules, a 2D viewer).
Args:
width (str or int): css width spec (if str) or width in pixels (if int)
height (str or int): css height spec (if str) or height in pixels (if int)
show_2dhydrogens (bool): whether to show the hydrogens in 2d (default: True if there
are 10 or less heavy atoms, false otherwise)
display (bool): immediately display this viewer
**kwargs (dict): keyword arguments for GeometryViewer only
Returns:
moldesign.ui.SelectionGroup
"""
atom_inspector = AtomInspector(group.atoms)
if group.num_atoms < 40:
width = width if width is not None else 500
height = height if height is not None else 500
viz2d = draw2d(group, width=width, height=height,
display=False,
show_hydrogens=show_2dhydrogens)
viz3d = draw3d(group, width=width, height=height,
display=False, **kwargs)
traitlets.link((viz3d, 'selected_atom_indices'), (viz2d, 'selected_atom_indices'))
views = HBox([viz2d, viz3d])
else:
viz2d = None
viz3d = draw3d(group, display=False, **kwargs)
views = viz3d
traitlets.link((viz3d, 'selected_atom_indices'),
(atom_inspector, 'selected_atom_indices'))
if viz2d:
traitlets.link((viz2d, 'selected_atom_indices'),
(atom_inspector, 'selected_atom_indices'))
displayobj = viewers.ViewerContainer([views, atom_inspector],
viewer=viz3d,
graphviewer=viz2d)
if display:
dsp(displayobj)
return displayobj
示例10: _make_ui_pane
# 需要导入模块: import traitlets [as 别名]
# 或者: from traitlets import link [as 别名]
def _make_ui_pane(self, hostheight):
layout = ipy.Layout(width='325px',
height=str(int(hostheight.rstrip('px')) - 50) + 'px')
#element_height = str(int(hostheight.rstrip('px')) - 125) + 'px'
element_height = None
# NOTE - element_height was used for the listbox-style orblist.
# HOWEVER ipywidgets 6.0 only displays those as a dropdown.
# This is therefore disabled until we can display listboxes again. -- AMV 7/16
# Orbital set selector
self.status_element = ipy.HTML(layout=ipy.Layout(width='inherit', height='20px'))
orbtype_label = ipy.Label("Orbital set:")
self.type_dropdown = ipy.Dropdown(options=list(self.wfn.orbitals.keys()))
initialtype = 'canonical'
if initialtype not in self.type_dropdown.options:
initialtype = next(iter(self.type_dropdown.options.keys()))
self.type_dropdown.value = initialtype
self.type_dropdown.observe(self.new_orb_type, 'value')
# List of orbitals in this set
orblist_label = ipy.Label("Orbital:")
self.orblist = ipy.Dropdown(options={None: None},
layout=ipy.Layout(width=layout.width, height=element_height))
traitlets.link((self.orblist, 'value'), (self, 'current_orbital'))
# Isovalue selector
isoval_label = ipy.Label('Isovalue:')
self.isoval_selector = ipy.FloatSlider(min=0.0, max=0.075,
value=0.01, step=0.00075,
readout_format='.4f',
layout=ipy.Layout(width=layout.width))
traitlets.link((self.isoval_selector, 'value'), (self, 'isoval'))
# Opacity selector
opacity_label = ipy.Label('Opacity:')
self.opacity_selector = ipy.FloatSlider(min=0.0, max=1.0,
value=0.8, step=0.01,
readout_format='.2f',
layout=ipy.Layout(width=layout.width))
traitlets.link((self.opacity_selector, 'value'), (self, 'orb_opacity'))
# Resolution selector
resolution_label = ipy.Label("Grid resolution:", layout=ipy.Layout(width=layout.width))
self.orb_resolution = ipy.Text(layout=ipy.Layout(width='75px',
positioning='bottom'))
self.orb_resolution.value = str(self.numpoints)
self.resolution_button = ipy.Button(description='Update resolution')
self.resolution_button.on_click(self.change_resolution)
traitlets.directional_link((self, 'numpoints'), (self.orb_resolution, 'value'),
transform=str)
self.uipane = ipy.VBox([self.status_element,
orbtype_label, self.type_dropdown,
orblist_label, self.orblist,
isoval_label, self.isoval_selector,
opacity_label, self.opacity_selector,
resolution_label, self.orb_resolution, self.resolution_button])
self.new_orb_type()
self.type_dropdown.observe(self.new_orb_type, 'value')
return self.uipane