使用破折号多值下拉列表的结果以字符串列表的形式返回,该字符串将馈送到函数中

Use results of Dash Multi-Value Dropdown to return as list of strings that feeds into function

提问人:Maikayla 提问时间:4/20/2023 更新时间:4/20/2023 访问量:26

问:

我正在尝试在 Dash 中使用多值下拉列表,并在我创建的函数中使用返回值。 这是函数是什么,以及调用时的样子:

    def create_new_card(self, channel_list, title, start = None, stop = None):
    
########################################################################################
       
    eeg_inst.create_new_card(['Fp1', "C3", "F3","O2", "QuarX"], "Neighborhood 1")

我有一个下拉列表,其中包含“channel_list”的所有选项,用户可以选择多个:

dcc.Dropdown(['Fp1', 'Fp2', 'F3', 'F4', 'C3', 'C4', 'P3', 'P4', 'O1', 'O2', 'F7', 'F8', 'T7','T8', 'P7', 'P8', 
    'Fz', 'Cz', 'Pz', 'M1', 'M2', 'AFz', 'CPz', 'POz', 'AccX', 'AccY','AccZ', 'GyroX', 'GyroY', 'GyroZ', 'QuarW', 'QuarX', 
    'QuarY', 'QuarZ'], placeholder='Select streams:', id='select_stream_dropdown', multi=True)

以下是下拉选择的回调:

    @app.callback(
    Output('dd-output-container', 'children'),
    Input('select_stream_dropdown', 'value')
)
def add_card_selection(value):
    streams_list = {value}
    new_card = eeg_inst.create_new_card(streams_list,"New Card Based On Selection")
    return new_card

这是“dd-output-container”(以防万一):

注意:当前的子项是临时的。我希望“所有流”保留下来,用户创建他们想要的东西。

html.Div([ dash_draggable.GridLayout(id='dd-output-container', children=[
       dcc.Graph(figure = eeg_inst.graphStream( "All Streams", ['Fp1', "C3", "F3", 
            "O2"])),
       eeg_inst.create_new_card(['Fp1', "C3", "F3","O2", "QuarX"], "Neighborhood 1"),
       eeg_inst.create_new_card(["C3", "F3","O2"], "Neighborhood 2")
       ]
     )
])

我需要回调返回要插入到函数中的字符串列表。我希望用户从下拉列表中选择所需的项目,然后按按钮创建新卡。dcc.Checklist 会是更好的选择吗?这是否可以在一个回调中实现,或者我是否需要一个回调来返回字符串列表,以及另一个回调来使用该字符串列表在按下按钮时创建新卡?只是对如何去做感到困惑。

函数 回调 下拉列表 plotly-dash

评论


答: 暂无答案