瞧,ipywidgets 'nice' 加载程序

voila iypwidgets 'nice' loader

当用 voila 渲染笔记本时,voila 渲染网站时会出现一个非常好的加载程序,如果仪表板很大,这可能需要几秒钟。

在仪表板中创建并启动后,用户可能 运行 操作可能需要几秒钟的时间来计算。 我想 运行 仪表板顶部的加载器指示用户计算机正在计算。 (浮动旋转图标或其他)

可以吗?

如果无法使用浮动选项 5 这里任何 ipywidget 作为计算指标(加载栏或类似的)

感谢

我做了类似的事情,但找不到在控件上叠加图像的方法(锁定任何进一步的交互等)。我发现最简单的方法是有一个专用于进度条的输出小部件,并在进行长 运行 计算时显示进度条。

这最适合 'repeating' 加载栏,例如 https://i.imgur.com/CS6l6tB.gif 而不是实际显示真实进度的加载栏。

import ipywidgets as widgets
import time

gif_address = 'PATH_TO_YOUR_LOADING_BAR'

with open(gif_address, 'rb') as f:
    img = f.read()

#   create loading bar widget, ready to display when running long function
loading_bar = widgets.Image(value=img)

def long_running_function():
    time.sleep(2)

out = widgets.Output()
display(out)

# make sure your widgets are observing a function which includes these lines:
with out:
    display(loading_bar)
    long_running_function()
    out.clear_output()

我倾向于在仪表板顶部的某处放置一个输出小部件,例如:

out_loader = widgets.Output()

每当一个繁重的函数开始时 运行 加载程序就会显示。

with out_loader:
    display(loading_bar)

并在函数结束时

out_loader.clear_output()

不知道能不能只写一行。会更好。