Dash 提供了许多交互组件,用于提升 Web 应用的动态性和用户体验。这些组件可以帮助开发者实现与用户输入的交互,包括文本框、下拉菜单、按钮、滑块等,用户的操作可以触发回调函数,更新页面内容或者执行其他逻辑。通过这些交互组件,Dash 应用能够快速响应用户的需求并进行数据可视化。


目录

  1. 常用交互组件概览
  2. 输入组件
  3. 按钮和链接组件
  4. 选择和滑动组件
  5. 日期与时间组件
  6. 参考资料与出站链接

1. 常用交互组件概览

Dash 的交互组件主要分为以下几类:

  • 输入组件:用于获取用户输入。
  • 按钮和链接组件:用于触发操作和导航。
  • 选择和滑动组件:用于选择选项或调节数值。
  • 日期与时间组件:用于选择日期或时间区间。

每个交互组件都可以与 Dash 的回调系统配合,允许数据和界面在用户操作时实时更新。


2. 输入组件

dcc.Input

  • 用于创建单行输入框,用户可以输入文本信息。它的值可以通过回调函数进行捕获和使用。

示例

import dash
from dash import dcc, html
from dash.dependencies import Input, Output

app = dash.Dash(__name__)

app.layout = html.Div([
    dcc.Input(id='input-box', type='text', value='initial value'),
    html.Div(id='output')
])

@app.callback(
    Output('output', 'children'),
    [Input('input-box', 'value')]
)
def update_output(value):
    return f'You entered: {value}'

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


dcc.Textarea

  • 用于创建多行文本输入框,适合用户输入更长的文本。

示例

dcc.Textarea(id='textarea', value='Enter text here...', rows=4, cols=50)


3. 按钮和链接组件

html.Button

  • 用于创建一个按钮,用户点击时可以触发回调操作。

示例

html.Button('Click Me', id='button', n_clicks=0)

html.A

  • 用于创建超链接,可以直接引导用户到其他页面或外部链接。

示例

html.A("Visit Google", href="https://www.google.com", target="_blank")


4. 选择和滑动组件

dcc.Dropdown

  • 用于创建一个下拉菜单,用户可以选择一个或多个选项。它可以通过 multi=True 来允许多选。

示例

dcc.Dropdown(
    id='dropdown',
    options=[
        {'label': 'Option 1', 'value': '1'},
        {'label': 'Option 2', 'value': '2'},
        {'label': 'Option 3', 'value': '3'}
    ],
    value='1'
)

dcc.Checklist

  • 用于创建复选框列表,用户可以选择多个选项。

示例

dcc.Checklist(
    options=[
        {'label': 'Option 1', 'value': '1'},
        {'label': 'Option 2', 'value': '2'}
    ],
    value=['1']
)

dcc.RadioItems

  • 用于创建单选框列表,用户只能选择其中的一个选项。

示例

dcc.RadioItems(
    options=[
        {'label': 'Option A', 'value': 'A'},
        {'label': 'Option B', 'value': 'B'}
    ],
    value='A'
)

dcc.Slider

  • 用于创建一个滑动条,用户可以拖动滑块选择一个数值。

示例

dcc.Slider(
    min=0,
    max=100,
    step=1,
    value=50,
    marks={0: '0', 50: '50', 100: '100'},
    id='slider'
)

dcc.RangeSlider

  • 用于创建一个范围选择滑块,用户可以选择一个区间值。

示例

dcc.RangeSlider(
    min=0,
    max=100,
    step=1,
    value=[20, 80],
    marks={0: '0', 50: '50', 100: '100'},
    id='range-slider'
)


5. 日期与时间组件

dcc.DatePickerSingle

  • 用于创建一个单日期选择器,允许用户选择一个日期。

示例

dcc.DatePickerSingle(
    id='date-picker-single',
    date='2025-01-01'
)

dcc.DatePickerRange

  • 用于创建一个日期范围选择器,允许用户选择开始和结束日期。

示例

dcc.DatePickerRange(
    id='date-picker-range',
    start_date='2025-01-01',
    end_date='2025-12-31'
)

dcc.TimePickerSingle

  • 用于创建一个时间选择器,用户可以选择一个时间。

示例

dcc.TimePickerSingle(
    id='time-picker-single',
    time='12:00'
)


6. 参考资料与出站链接

通过这些链接,你可以深入了解 Dash 的交互组件以及如何结合回调功能创建更复杂的用户交互。


总结

Dash 提供了丰富的交互组件,涵盖了文本框、按钮、下拉菜单、复选框、滑动条等常见的用户输入方式。这些组件可以通过回调函数与数据模型进行交互,实现动态内容更新。通过利用这些交互组件,你可以轻松创建响应式、互动性强的 Web 应用。