Skip to content

Instantly share code, notes, and snippets.

@egentry
Created September 22, 2015 06:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save egentry/f3f28130162d60c97b59 to your computer and use it in GitHub Desktop.
Save egentry/f3f28130162d60c97b59 to your computer and use it in GitHub Desktop.
Before/After examples of ipywidgets handling nested widgets
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from __future__ import print_function\n",
"\n",
"from IPython.display import display, Image\n",
"from ipywidgets import interactive, IntSlider, fixed\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple Example:\n",
"**Goal:** Print a number within a specified range.\n",
"- Use a widget to set the lower bound\n",
"- Use another widget to set the upper bound, such that it's greater than the lower bound\n",
"- Use a third widget to choose a number within the upper and lower bounds\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def set_bounds(lower_bound = -5, upper_bound=10):\n",
" u = interactive(print_arg,\n",
" number_to_print = IntSlider(min=lower_bound, max=upper_bound) )\n",
" return u\n",
"def set_lower_bound(lower_bound=-5):\n",
" v = interactive(set_bounds,\n",
" lower_bound = fixed(lower_bound),\n",
" upper_bound = IntSlider(min=lower_bound + 1, max=5))\n",
" return v\n",
" \n",
"def print_arg(number_to_print=5):\n",
" print(\"printed: \", number_to_print)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"printed: 0\n"
]
}
],
"source": [
"w = interactive(set_lower_bound, lower_bound = IntSlider(min=-5, max=0))\n",
"display(w)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Sample bad behavior: \n",
"What happens if I choose to change the upperbound?"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename=\"bad_widget_behavior.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"All the sliders work, but they quickly get in the way, and it's not clear what the conditions were when each was spawned\n",
"\n",
"### Even worse when we change the outermost widget:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nBQAAQv0fGGh4rREzv0sAAAAASUVORK5CYII=\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename=\"worse_widget_behavior.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Behavior when fixed:\n",
"We now can change all of the widgets, in any order, and get a useable interface\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nAAD1+j8Az1GEdQTLJQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename=\"good_widget_behavior.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Caveats?\n",
"- Some people might like that they can use widgets to spawn new widgets which persist\n",
"- It flickers\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.0"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment