我想在某个循环中获取滑块小部件的值。但是,我希望这些能够实时更新。
例如见下文。在图中的代码中,我初始化了一些滑块,然后运行下面的循环。在循环运行的同时,我移动滑块。循环中的打印值不会从初始值更改。当我执行最后一个单元格时,会显示更新的滑块值。
答案 0 :(得分:1)
这是一个灵感来自异步小部件中最后一个示例的解决方案(由@Fabio Perez建议):
import threading
from IPython.display import display
import ipywidgets as widgets
def f(a, b):
return
w = interactive(f, a=10, b=20)
def work(w):
for ii in range(10):
time.sleep(1)
print(w.kwargs, w.result)
thread = threading.Thread(target=work, args=(w,))
display(w)
thread.start()
这会启动一个单独的线程来检查小部件的值。