首页 > 解决方案 > 瞧,iypwidgets 'nice' loader

问题描述

当使用 voila 渲染笔记本时,当网站正在由 voila 渲染时,会出现一个 VERY NICE 加载器,如果仪表板很大,这可能需要几秒钟。

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

可能吗?

如果浮动选项不可能是 5here 任何 ipywidget 作为计算指标(加载条或类似)

谢谢

标签: pythonjupyter-notebookipywidgets

解决方案


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

这最适用于“重复”加载栏,例如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()

推荐阅读