title: ipywidgets: How to observe state change in Box children?
body: <p>I have a class (inherited from <code>Box</code>) with children widgets, and I'd like to call observe on the box, so that I can register a callback if there's a change made to any of its children.</p>
  <p>Of course, I can I call <code>box.child1.observe</code>, <code>box.child2.observe</code>, <code>box.child3.child1.observe</code>, etc., but I have nested boxes and I don't want to have to enumerate through every leaf widget.  I would prefer to simply call <code>box.observe</code> from that box's parent.</p>
  <p>How can I modify my box class so that a change to its children notifies a change to the box itself?  As of now, if I register a callback with <code>box.observe(func, 'value')</code>, then <code>func</code> never gets called.  How to fix?  Thanks.</p>