我正在尝试在 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 是更好的选择吗?这可以在一个回调中实现,还是我需要一个回调来返回字符串列表和另一个回调来使用该字符串列表在按下按钮时创建新卡?只是对如何去做这件事感到困惑。