首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >瞧,iypwidgets‘不错’加载器

瞧,iypwidgets‘不错’加载器
EN

Stack Overflow用户
提问于 2020-07-14 05:17:15
回答 2查看 460关注 0票数 1

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

一旦在仪表板中创建并启动,用户就可以运行可能需要几秒钟才能计算的操作。我想在仪表板上运行一个加载器,向用户表明计算机正在计算。(浮动旋转图标或其他)

有可能吗?

如果浮动选项为5,则不可能使用任何ipywidget作为计算指示器(加载栏或类似工具)

Thx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-14 15:14:13

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

这在使用“重复”加载栏时效果最好,比如https://i.imgur.com/CS6l6tB.gif,而不是真正显示进度的加载栏。

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2020-07-14 20:34:38

我倾向于在仪表板顶部的某个位置放置一个输出小部件,如下所示:

代码语言:javascript
复制
out_loader = widgets.Output()

每次一个重函数开始运行时,加载程序都会显示出来。

代码语言:javascript
复制
with out_loader:
    display(loading_bar)

在函数的末尾

代码语言:javascript
复制
out_loader.clear_output()

我不知道这些是否可以只写成一行。那就更好了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62884399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档