Plotly Dash dcc.禁用间隔的布尔文档



尝试确定此dcc.interval禁用布尔属性是否是禁用回调函数的唯一方法。如果是,我是否只是将其添加到html.div并显示一个按钮?文件似乎不太清楚。我在任何地方都看不到它用法的例子。

有这么容易吗:

app.layout = html.Div(
html.Div([
#html.H4('my dash/plotly graph'),
dcc.Graph(id='live-update-graph'),
dcc.Interval(
id='interval-component',
interval=1*1000, # in milliseconds
n_intervals=0,
-->  disabled=False   <--
)
])
)

然后一个按钮出现了,还是它更复杂?比如设置按钮、在回调装饰器中设置输入/输出等等?

如果是这样的话,它似乎只是想停止回调。

在底部编辑

无论连接哪个回调函数来监听间隔组件,都会像设置间隔一样频繁地触发。如果您想停止回调,您需要一种方法将间隔的disabled属性设置为False。您可以通过创建一个带有回调的按钮来更新该道具,每次用户单击它,函数都会切换道具是True还是False

然后出现一个按钮,或者它更复杂?比如设置按钮、在回调装饰器中设置输入/输出等等?后者。你必须自己把所有东西都装好。

您希望在什么条件下停止回调?你真的想要一个永远运行的间隔,每X秒更新一次吗?如果你手动触发回调,你的应用程序会更好地工作吗?这可能不太容易设置。

禁用间隔的回调示例:

在你的布局中有这样的东西:

html.Button(id='start-stop-button', label='Start/Stop')

@app.callback(
Output('interval-component', 'disabled'),
[Input('start-stop-button', 'n_clicks')],
[State('interval-component', 'disabled')],
)
def callback_func_start_stop_interval(button_clicks, disabled_state):
if button_clicks is not None and button_clicks > 0:
return not disabled_state
else:
return disabled_state

最新更新