在另一个选择选项中选择特定值(Delta Emax 和 Delta IC50
)时,我使用下面给出的代码删除下拉选项。该代码确实删除了下拉选项,但仍然在显示页面上提供 label=Select drug
。当我选择 else
选项时,我想删除标签和下拉选项。选择 if
drug_options = [{"label": drug, "value": drug} for drug in sorted(set(all_drugs))]
dbc.Label("Select drug:"),
dcc.Dropdown(id="drug_selector", options=drug_options, placeholder="All"),
@app.callback(Output("drug_selector", "style"), Input("x_selector2", "value"))
def update_controls(selected_x):
if selected_x in ["Delta Emax", "Delta IC50"]:
return {}
else:
return {'display': 'none'}
最佳答案
根据用例,您可以通过两种方法来实现此目的。
您可以尝试将 Label 和 Dropdown 组件放入 Div 组件中,并更改该 Div 的样式,如下所示:
drug_options = [{"label": drug, "value": drug} for drug in sorted(set(all_drugs))]
html.Div(id='remove-or-not',
children=[
dbc.Label("Select drug:"),
dcc.Dropdown(id="drug_selector", options=drug_options, placeholder="All"),
]
)
@app.callback(Output("remove-or-not", "style"), Input("x_selector2", "value"))
def update_controls(selected_x):
if selected_x in ["Delta Emax", "Delta IC50"]:
return {}
else:
return {'display': 'none'}
或者您可以为 Label 组件提供一个 Id 并将其添加到回调中。如果您想以不同的方式处理每个组件的样式,这种方式更合适:
drug_options = [{"label": drug, "value": drug} for drug in sorted(set(all_drugs))]
dbc.Label(id='label',children=["Select drug:"]),
dcc.Dropdown(id="drug_selector", options=drug_options, placeholder="All"),
@app.callback(
[Output("drug_selector", "style"),Output('label','style')],
Input("x_selector2", "value"))
def update_controls(selected_x):
if selected_x in ["Delta Emax", "Delta IC50"]:
return [{},{}]
else:
return [{'display': 'none'},{'display': 'none'}]
关于python - 如何删除绘图破折号中的标签和下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72535359/