[IPython-dev] Widget example that uses classes instead of globals?

Adam Hughes hughesadam87 at gmail.com
Sat Aug 30 13:43:26 EDT 2014

And just to clarify, I presume that the notebook is actively "looking" for
particular functions or something in the cell that let's the notebook know
"hey, this is widget/GUI code, I need to output it as so".  I had worried
that if this critical piece was buried in a class, the notebook wouldn't
recognize it, and the GUI wouldn't display.

On Sat, Aug 30, 2014 at 1:41 PM, Adam Hughes <hughesadam87 at gmail.com> wrote:

> Hi,
> This question follows directly from this recent thread on the feasiblity
> of widgets (
> http://python.6.x6.nabble.com/Feasilibity-of-widgets-layout-for-mimicking-this-td5068197.html)
> but I thought was specific enough to be a new thread.
> In all of the notebook examples I've seen, a GUI is defined in its own
> cell with global variables that are shared between functions.  I'd really
> like to see a complete, simple example of a GUI build as a class, where
> most of the events, updates and default values are set within the class.
>  And then when the class is instantiated, the notebook somehow can still
> output the GUI.
> For example, would something of this design be compatible with the current
> widget design pattern:
> *class Foo(object):*
> *   variable = defaultvalue*
> *   def update_variable(self):*
> *      ....*
> *   def redraw(self):*
> *      ...*
> *# Instantiate the class*
> *f = Foo()*
> *f.variable_widget.on_trait_change(update_variable, 'value')*
> Or is this type of design pattern out of the question?  We're trying to
> move in this direction so that we can compartmentalize and template as much
> behavior as possible, and make a simple framework for building up more
> complex GUIs.  It's just now clear to me if such a pattern is possible.  If
> anyone has any insights or examples, would you mind sharing?
> THanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20140830/72ca26a2/attachment.html>

More information about the IPython-dev mailing list