gpt4 book ai didi

python - 如何使用按钮触发回调更新?

转载 作者:行者123 更新时间:2023-11-28 22:25:09 26 4
gpt4 key购买 nike

我刚刚开始使用破折号。以 here 为例.我想转换下面的 dash 应用程序

import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()

app.layout = html.Div([
dcc.Input(id='my-id', value='initial value', type="text"),
html.Div(id='my-div')
])

@app.callback(
Output(component_id='my-div', component_property='children'),
[Input(component_id='my-id', component_property='value')]
)
def update_output_div(input_value):
return 'You\'ve entered "{}"'.format(input_value)

if __name__ == '__main__':
app.run_server()

在用户按下按钮时更新,而不是在输入字段的值更改时更新。我该如何做到这一点?

最佳答案

这是一个与此类似的问题 post .在最新的 dash_html_components 中有一个按钮可用的点击事件,但似乎还没有完整的文档记录。创建者 chriddyp 拥有 stated Event 对象可能不会面向 future ,但 State 应该是。

使用 State 如:

@app.callback(
Output('output', 'children'),
[Input('button-2', 'n_clicks')],
state=[State('input-1', 'value'),
State('input-2', 'value'),
State('slider-1', 'value')])

您可以使用值作为输入,而无需在值发生变化时启动回调。回调仅在 Input('button', 'n_clicks') 更新时触发。

因此,对于您的示例,我添加了一个按钮并将您现有的 html.Input 的值提供给 State 对象:

import dash
from dash.dependencies import Input, Output, State
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()

app.layout = html.Div([
dcc.Input(id='my-id', value='initial value', type="text"),
html.Button('Click Me', id='button'),
html.Div(id='my-div')
])

@app.callback(
Output(component_id='my-div', component_property='children'),
[Input('button', 'n_clicks')],
state=[State(component_id='my-id', component_property='value')]
)
def update_output_div(n_clicks, input_value):
return 'You\'ve entered "{}" and clicked {} times'.format(input_value, n_clicks)

if __name__ == '__main__':
app.run_server()

关于python - 如何使用按钮触发回调更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com