from IPython.html.widgets import FloatText, FloatSlider, Button
from IPython.display import display
from IPython.utils.traitlets import link
widgets = []
for x in list('abcdef'):
widgets.append(FloatText(description=x))
a = FloatSlider()
b = FloatSlider()
link((a, 'value'), (b, 'value'))
threads = []
def go(sender):
def thread_code():
from time import sleep
from random import random
while len(threads) > 0:
for w in widgets:
w.value = random()
sleep(0.01)
from threading import Thread
thread = Thread(target=thread_code)
threads.append(thread)
thread.start()
go_btn = Button(description="Go!")
go_btn.on_click(go)
def stop(sender):
del threads[:]
stop_btn = Button(description="Stop")
stop_btn.on_click(stop)
display(*widgets)
display(a,b)
display(go_btn)
display(stop_btn)
:0: FutureWarning: IPython widgets are experimental and may change in the future.