(数据科学学习手札112)Python+Dash快速web应用开发——表单控件篇(上) (2)

  options用于设置我们的下拉选择部件中显示的选项,传入列表,列表每个元素为字典,必填键有:'label',用于设置对应选项显示的标签名称;'value',对应当前选项的值,也是我们书写回调函数接受的输入;'disabled',一般情况下不用设置,除非你想指定对应选项不可点选就设置为True;

  multi,bool型,用于设置是否允许多选;

  optionHeight,用于设置每个选项的显示像素高度,默认35;

  placeholder,同Input()同名参数;

  searchable,bool型,用于设置是否可以在输入框中搜索下拉选项;

  search_value,可用作回调的输入,记录了用户的搜索内容;

  value,记录用户已选择的选项,单选模式下为对应单个选项的'value'值,多选模式下为对应多个选项'value'值组成的列表;

app3.py

import dash import dash_bootstrap_components as dbc import dash_html_components as html from dash.dependencies import Input, Output import dash_core_components as dcc import json app = dash.Dash(__name__) app.layout = html.Div( dbc.Container( [ dcc.Dropdown(, placeholder='单选', options=[ {'label': item, 'value': item} for item in list('ABCD') ], style={ 'width': '300px' } ), html.Pre(id='dropdown-output-1', style={'background-color': '#d4d4d420', 'width': '300px'}), dcc.Dropdown(, placeholder='多选', multi=True, options=[ {'label': item, 'value': item} for item in list('ABCD') ], style={ 'width': '300px' } ), html.Pre(id='dropdown-output-2', style={'background-color': '#d4d4d420', 'width': '300px'}) ], style={'margin-top': '100px'} ) ) @app.callback( Output('dropdown-output-1', 'children'), Input('dropdown-input-1', 'value') ) def dropdown_output_1(value): if value: return json.dumps(value, indent=4) return dash.no_update @app.callback( Output('dropdown-output-2', 'children'), Input('dropdown-input-2', 'value') ) def dropdown_output_2(value): if value: return json.dumps(value, indent=4) return dash.no_update if __name__ == '__main__': app.run_server(debug=True)

(数据科学学习手札112)Python+Dash快速web应用开发——表单控件篇(上)

图4 2.3 单选框与复选框

  我们分别可以使用dash_bootstrap_components中的RadioItems与Checklist来创建单选框与复选框:

单选框RadioItems

  单选框的特点是我们只能在其展示的一组选项中选择1项。

  它的参数options格式同Dropdown();

  inline参数设置为True时会横向布局所有选项;

  switch设置为True时会将每个选项样式切换为开关;

app4.py

import dash import dash_bootstrap_components as dbc import dash_html_components as html from dash.dependencies import Input, Output import dash_core_components as dcc import json app = dash.Dash(__name__) app.layout = html.Div( dbc.Container( [ dbc.RadioItems(, inline=True, switch=True, options=[ {'label': item, 'value': item} for item in list('ABCD') ], style={ 'width': '300px' } ), html.P(id='radio-items-output') ], style={'margin-top': '100px'} ) ) @app.callback( Output('radio-items-output', 'children'), Input('radio-items-input', 'value') ) def radio_items_output(value): if value: return '已选择:'+value return dash.no_update if __name__ == '__main__': app.run_server(debug=True)

(数据科学学习手札112)Python+Dash快速web应用开发——表单控件篇(上)

图5

复选框Checklist

  与单选框相对的,是复选框,它的参数与RadioItems完全一致,唯一不同的是它是可以多选的:

app5.py

import dash import dash_bootstrap_components as dbc import dash_html_components as html from dash.dependencies import Input, Output import dash_core_components as dcc import json app = dash.Dash(__name__) app.layout = html.Div( dbc.Container( [ dbc.Checklist(, inline=True, options=[ {'label': item, 'value': item} for item in list('ABCD') ], style={ 'width': '300px' } ), html.P(id='check-list-output') ], style={'margin-top': '100px'} ) ) @app.callback( Output('check-list-output', 'children'), Input('check-list-input', 'value') ) def check_list_output(value): if value: return '已选择:'+'、'.join(value) return dash.no_update if __name__ == '__main__': app.run_server(debug=True)

(数据科学学习手札112)Python+Dash快速web应用开发——表单控件篇(上)

图6

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydsfx.html