[IPython-dev] Feasilibity of widgets/layout for mimicking this

hugadams hughesadam87 at gmail.com
Sat Aug 23 13:49:59 EDT 2014


Wow, thanks for sharing.  This is going to be an excellent resource!

Since this thread probably has the most widget experts I'm ever going to
find, may I ask a followup that I was chewing over on a plane ride
yesterday?

For our package, I think it would be beneficial to make a series of useful
containers of various widgets for a particular task.  For example, a
"filtering" container would have a series of widgets related to filtering
data.  Maybe a dropdown widget with "fourier, hamming, wavelet" and other
related things like a "transform" and "back transform button".  Likewise,
maybe a 1-d plotting widget would store a plot, have a save button,
publicize some common plotting options like "color" and so forth.  I'd like
to build these, and then assemble them into more complex GUI's, where the
main gui would define all of the events to link up all of these sub-UI's,
or conatiners as I'm calling them for lack of a better word.

What's unclear to me is if a complex event system like this is feasible in
the current design of the widget API.  Let's say I have two sub-UI's for
Plotting and Filtering.  Most likely, they'll be in some sort of class, so
pretend I could instantiate as:

plot_ui = Plotting()
filtering_ui = Filtering()

Imagine a simple event where the user changes an attribute through a widget
in the filtering UI and this is to trigger a redraw of the plot.  In my
main program, I'd like to link these up.  Is this type of functionality
supported?  Something like:

@on_trait_change(filtering_ui.windowtype):
    if filtering_ui.windowtype == 'hamming':
        plot_ui.redraw(scipy.filter.hamming(data)
   etc...




On Sat, Aug 23, 2014 at 12:45 PM, rossant [via Python] <
ml-node+s6n5069009h41 at n6.nabble.com> wrote:

> Adam,
>
> FYI, you'll find my EuroSciPy tutorial on the widgets here
> <https://github.com/rossant/euroscipy2014>
>
> Best,
> Cyrille
>
> 2014-08-20 10:15 GMT+02:00 Cyrille Rossant <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=5069009&i=0>>:
>
> > Hi Adam,
> >
> > I'll do a tutorial about IPython widgets at EuroSciPy in a week [1].
> > I'm notably planning to demonstrate how to build, in the notebook, a
> > GUI like the one you showed. I'll put here the link to the GitHub repo
> > when everything's ready.
> >
> > Best,
> > Cyrille
> >
> > [1] https://www.euroscipy.org/2014/schedule/presentation/60/
> >
> > 2014-08-17 19:54 GMT+02:00 hugadams <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=5069009&i=1>>:
> >> (Please disregard if doublepost; having some subscription issues)
> >>
> >> Hello,
> >>
> >> We are developing a spectroscopy library and want to put in some
> interactive
> >> plots/utilities to make the software a bit more approachable to
> novices.
> >> I'd really like to build the entire interactive plotting interface
> through
> >> the notebook's new widget system.  My reasoning is as follows:
> >>
> >>    - All static plots are already matplotlib-based, so we wouldn't have
> to
> >> write a seperate plotting api
> >>    - Notebooks are inherently browser-ready, so sharing plots would be
> great
> >>          - Is it likely that static nbviewer will eventually support
> >> widgets?  Since the data is required, I figured not...
> >>    - Our tutorials are already in notebooks, so we'd like to be
> consistent.
> >>
> >> I've watched all the videos I can find from the widgets, and think I'm
> fine
> >> with the Python end; however, am finding it hard to come by lots of
> >> information on controlling the layout of the widgets.  I know it's
> mostly
> >> done in javascript, and I think the most complex view we will have will
> look
> >> something like this:
> >>
> >> https://sites.google.com/site/shigemorita/home/2dshige
> >>
> >> How much time would you estimate a javascript novice ought to spend on
> >> getting something like that in the notebook?  Can anyone share
> tutorials for
> >> the layout portion of the widget API?  Any information is helpful.
>  Lastly,
> >> does anyone have any hacky ideas of how to bury the source code so that
> the
> >> widgets merely display, rather than the user copy/pasting the widget
> source
> >> into a cell?
> >>
> >> Thanks
> _______________________________________________
> IPython-dev mailing list
> [hidden email] <http://user/SendEmail.jtp?type=node&node=5069009&i=2>
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://python.6.x6.nabble.com/Feasilibity-of-widgets-layout-for-mimicking-this-tp5068197p5069009.html
>  To unsubscribe from Feasilibity of widgets/layout for mimicking this, click
> here
> <http://python.6.x6.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5068197&code=aHVnaGVzYWRhbTg3QGdtYWlsLmNvbXw1MDY4MTk3fC03NjYyMTgyMzk=>
> .
> NAML
> <http://python.6.x6.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: http://python.6.x6.nabble.com/Feasilibity-of-widgets-layout-for-mimicking-this-tp5068197p5069013.html
Sent from the IPython - Development mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20140823/bf0300ac/attachment.html>


More information about the IPython-dev mailing list