【发布时间】:2022-01-21 11:20:47
【问题描述】:
所以我想在 Jupyter notebook 中创建一个简单的 UI:
- 计数器“数字”每秒递增一次
- 如果选中“暂停”复选框,则“数字”不会增加
- 如果按下“触发器”按钮,则“数字”会递减,无论暂停状态如何
到目前为止,我尝试了以下代码的一些变体,但它不起作用;运行 while 循环时,小部件值似乎没有更新。有没有办法解决它或另一种方法来做到这一点?谢谢!
import ipywidgets as widgets
import time
from IPython.display import display, clear_output
btn = widgets.Button(description = "Trigger")
pause = widgets.Checkbox(value = False, description = "Paused?")
number = widgets.Label("0")
wid = widgets.VBox([btn, number, pause])
display(wid)
def triggered(b):
number.value = str(int(number.value) - 1)
btn.on_click(triggered)
while True:
time.sleep(1)
while (pause.value == True):
time.sleep(3)
number.value = str(int(number.value) + 1)
【问题讨论】:
-
是的,while 循环阻止了任何进入内核的消息。查看主文档中的异步小部件示例:ipywidgets.readthedocs.io/en/latest/examples/…
标签: python user-interface jupyter-notebook ipywidgets