当使用voila渲染笔记本时,当网站由voila渲染时,会出现一个非常好的加载器,如果仪表板很大,这可能需要几秒钟的时间。
一旦在仪表板中创建并启动,用户就可以运行可能需要几秒钟才能计算的操作。我想在仪表板上运行一个加载器,向用户表明计算机正在计算。(浮动旋转图标或其他)
有可能吗?
如果浮动选项为5,则不可能使用任何ipywidget作为计算指示器(加载栏或类似工具)
Thx
发布于 2020-07-14 15:14:13
我做了类似的事情,但找不到在控件上覆盖图像的方法(锁定任何进一步的交互等)。我发现最简单的方法是有一个专门用于进度条的输出小部件,并在长时间运行的计算发生时显示进度条。
这在使用“重复”加载栏时效果最好,比如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()发布于 2020-07-14 20:34:38
我倾向于在仪表板顶部的某个位置放置一个输出小部件,如下所示:
out_loader = widgets.Output()每次一个重函数开始运行时,加载程序都会显示出来。
with out_loader:
display(loading_bar)在函数的末尾
out_loader.clear_output()我不知道这些是否可以只写成一行。那就更好了。
https://stackoverflow.com/questions/62884399
复制相似问题