вуаля iypwidgets 'хороший' загрузчик - PullRequest
0 голосов
/ 14 июля 2020

Когда блокнот визуализируется с помощью вуаля, появляется ОЧЕНЬ ХОРОШИЙ загрузчик, когда веб-сайт визуализируется с помощью вуаля, что может занять несколько секунд, если панель инструментов большая.

После того, как панель инструментов создается и запускается Пользователь может выполнять операции, вычисление которых может занять несколько секунд. Я хотел бы запустить загрузчик поверх панели инструментов, указывающий пользователя, которого компьютер производит вычисления. (Плавающий вращающийся значок или что-то еще)

Возможно ли это?

Если это невозможно с плавающей опцией, 5 здесь любой ipywidget в качестве индикатора вычислений (полоса загрузки или аналогичный)

Спасибо

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Я бы предпочел разместить виджет вывода где-то в верхней части панели инструментов, например:

out_loader = widgets.Output()

Каждый раз, когда запускается тяжелая функция, отображается загрузчик. * И в конце функции

out_loader.clear_output()

Я не знаю, можно ли их записать только в одну строку. Было бы лучше.

0 голосов
/ 14 июля 2020

Я сделал нечто подобное, но не смог найти способ наложить изображение на элементы управления (заблокировав любое дальнейшее взаимодействие и c). Самый простой способ, который я нашел, заключался в том, чтобы иметь виджет вывода, предназначенный для индикатора выполнения, и отображать индикатор выполнения, когда выполняются длительные вычисления.

Это лучше всего работает с «повторяющейся» полосой загрузки, например 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()
...