[嗨,我有3个以短划线设计的按钮,我想在单击按钮时更改按钮的颜色,我知道@ app.callback中有更改,但是我不确定要更改什么。我想使所有内容保持不变,但颜色应更改为“红色”
谁能帮我这个忙。
leftButtons = html.Div(id='framework-left-pane',
children=[
dcc.Link( children = html.Button(leftButton1,
id='leftbutton1',
className='roundbutton',
style={'backgroundColor': '#111100', 'color':'white','width':'100%', 'border':'1.5px black solid', 'height': '50px','text-align':'center', 'marginLeft': '20px', 'marginTop': 130}, n_clicks = 0)),
dcc.Link( children = html.Button(leftButton2,
id='leftbutton2',
className='roundbutton',
style={'backgroundColor': '#111100', 'color':'white','width':'100%' , 'border':'1.5px black solid','height': '50px','text-align':'center', 'marginLeft': '20px', 'marginTop': 20},n_clicks = 0)),
dcc.Link( children = html.Button(leftButton3,
id='leftbutton3',
className='roundbutton',
style={'backgroundColor': '#111100', 'color':'white','width':'100%', 'border':'1.5px black solid','height': '50px','text-align':'center', 'marginLeft': '20px', 'marginTop': 20},n_clicks = 0)),
],style={'width':'200px','position':'fixed'})
`
现在使用app.callback我只返回图像
@app.callback(
Output(component_id='tab_1_images', component_property='children'),
[Input('leftbutton1', 'n_clicks'),
Input('leftbutton2', 'n_clicks'),
Input('leftbutton3', 'n_clicks')])
def update_output_div(n_clicks_A, n_clicks_B, n_clicks_C):
return [a static image for each of the button]
为了在单击按钮后更改按钮的颜色,您需要在回调中更新相应的style
属性。我在下面提供了一个示例。
import dash
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash(__name__)
white_button_style = {'background-color': 'white',
'color': 'black',
'height': '50px',
'width': '100px',
'margin-top': '50px',
'margin-left': '50px'}
red_button_style = {'background-color': 'red',
'color': 'white',
'height': '50px',
'width': '100px',
'margin-top': '50px',
'margin-left': '50px'}
app.layout = html.Div([
html.Button(id='button',
children=['click'],
n_clicks=0,
style=white_button_style
)
])
@app.callback(Output('button', 'style'), [Input('button', 'n_clicks')])
def change_button_style(n_clicks):
if n_clicks > 0:
return red_button_style
else:
return white_button_style
if __name__ == '__main__':
app.run_server(debug=True)