如何使用 Dash plotly add/create 自定义加载器?
How to add/create a custom loader with Dash plotly?
我想将我的 gif 传递给加载器组件,而不是使用默认数字。有人知道怎么做吗?
这是我的代码:
dcc.Loading(
id="loading-1",
type="default",
children=html.Div(id="loading-output-1"),
)
我正在努力完成这样的事情:
dcc.Loading(
id="loading-1",
type="assets/dashboard_loader.gif",
children=html.Div(id="loading-output-1"),
)
有人可以指导我吗?
type
属性 指定微调器的外观,但仅限于破折号核心组件提供的一组值:
type (a value equal to: 'graph', 'cube', 'circle', 'dot', 'default'; default 'default'): Property that determines which spinner to show one of 'graph', 'cube', 'circle', 'dot', or 'default'.
所以您的方法目前不可行,但有一个解决方法。
默认微调器的 html 结构如下所示:
<div class="dash-spinner dash-default-spinner">
<div class="dash-default-spinner-rect1"></div>
<div class="dash-default-spinner-rect2"></div>
<div class="dash-default-spinner-rect3"></div>
<div class="dash-default-spinner-rect4"></div>
<div class="dash-default-spinner-rect5"></div>
</div>
.dash-spinner
中的每个矩形 div 都用于默认类型动画。我们不关心这些矩形或 .dash-spinner
内的任何东西,因为我们只想要 gif 动画。
所以我们在这里可以做的是隐藏所有 .dash-spinner
children 并为 .dash-spinner
添加动画背景。
我们可以 css
.dash-spinner {
background-image: url("http://i.stack.imgur.com/SBv4T.gif");
background-size: contain;
background-repeat: no-repeat;
}
.dash-spinner * {
display: none !important;
}
要包含 css,请参阅文档 here。
基于文档中给出的示例的最小且可重现的示例 here:
from dash import Dash
import time
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = Dash(__name__)
app.layout = html.Div(
children=[
html.H3("Edit text input to see loading state"),
dcc.Input(id="loading-input-1", value="Input triggers local spinner"),
dcc.Loading(
id="loading-1", type="default", children=html.Div(id="loading-output-1")
),
],
)
@app.callback(
Output("loading-output-1", "children"),
Input("loading-input-1", "value"),
prevent_initial_call=True,
)
def input_triggers_spinner(value):
time.sleep(2)
return value
if __name__ == "__main__":
app.run_server()
Gif 取自此相关回答 。
我想将我的 gif 传递给加载器组件,而不是使用默认数字。有人知道怎么做吗?
这是我的代码:
dcc.Loading(
id="loading-1",
type="default",
children=html.Div(id="loading-output-1"),
)
我正在努力完成这样的事情:
dcc.Loading(
id="loading-1",
type="assets/dashboard_loader.gif",
children=html.Div(id="loading-output-1"),
)
有人可以指导我吗?
type
属性 指定微调器的外观,但仅限于破折号核心组件提供的一组值:
type (a value equal to: 'graph', 'cube', 'circle', 'dot', 'default'; default 'default'): Property that determines which spinner to show one of 'graph', 'cube', 'circle', 'dot', or 'default'.
所以您的方法目前不可行,但有一个解决方法。
默认微调器的 html 结构如下所示:
<div class="dash-spinner dash-default-spinner">
<div class="dash-default-spinner-rect1"></div>
<div class="dash-default-spinner-rect2"></div>
<div class="dash-default-spinner-rect3"></div>
<div class="dash-default-spinner-rect4"></div>
<div class="dash-default-spinner-rect5"></div>
</div>
.dash-spinner
中的每个矩形 div 都用于默认类型动画。我们不关心这些矩形或 .dash-spinner
内的任何东西,因为我们只想要 gif 动画。
所以我们在这里可以做的是隐藏所有 .dash-spinner
children 并为 .dash-spinner
添加动画背景。
我们可以 css
.dash-spinner {
background-image: url("http://i.stack.imgur.com/SBv4T.gif");
background-size: contain;
background-repeat: no-repeat;
}
.dash-spinner * {
display: none !important;
}
要包含 css,请参阅文档 here。
基于文档中给出的示例的最小且可重现的示例 here:
from dash import Dash
import time
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = Dash(__name__)
app.layout = html.Div(
children=[
html.H3("Edit text input to see loading state"),
dcc.Input(id="loading-input-1", value="Input triggers local spinner"),
dcc.Loading(
id="loading-1", type="default", children=html.Div(id="loading-output-1")
),
],
)
@app.callback(
Output("loading-output-1", "children"),
Input("loading-input-1", "value"),
prevent_initial_call=True,
)
def input_triggers_spinner(value):
time.sleep(2)
return value
if __name__ == "__main__":
app.run_server()
Gif 取自此相关回答