在已发布的Jupyter Notebook中显示该功能正在“运行”的小部件

时间:2020-08-23 05:55:32

标签: python jupyter-notebook ipywidgets

在已发布的Jupyter笔记本中,有一种方法可以插入一个小部件,该小部件在运行函数时显示“正在运行”或类似内容。

我知道tqdm函数,但据我所知,仅当函数/进程包含for循环时。

我目前有一系列带有提交按钮的下拉小部件,但是某些功能需要一段时间才能使calcs运行,所以我无法告知是否正在运行

欢呼

1 个答案:

答案 0 :(得分:2)

我过去这样做的方法是拥有一个作为上下文管理器的函数,该函数向Text小部件显示一些值以指示该函数正在运行。您还可以使用“输出”小部件来显示不确定的“进度”栏,如下所示:

https://www.iselect.com.au/content/themes/iselect/images/post/loader.gif

import ipywidgets as ipyw
import time
from contextlib import contextmanager

label = ipyw.Text('Ready')
button = ipyw.Button(description='Click me')

@contextmanager
def show_loading():
    label.value = 'Running...'
    yield
    label.value = 'Ready'

def long_running_function(self):
    with show_loading():
        time.sleep(2)
        
button.on_click(long_running_function)

display(button)    
display(label)