首页 > 编程问答 >有没有办法将下拉选项放置在选项选择菜单中?

有没有办法将下拉选项放置在选项选择菜单中?

时间:2024-07-24 09:59:09浏览次数:11  
标签:python dropdown plotly-dash

特别是对于我的具体情况,使用 dcc.Dropdown 效果非常好。唯一的问题是,在很多情况下,用户可能会选择多个选项,这在视觉上看起来非常难看。

有没有办法让下拉菜单像 这样

我已经想到了关于创建一个打开的菜单,其中包含可以选择作为清单的选项,但这会使代码更复杂,因为我希望允许用户像标准中一样搜索他们想要的选项 dcc.Dropdown


看起来你正在使用 Plotly Dash 并希望自定义 dcc.Dropdown 组件,使其外观和行为更像带有复选框的选择菜单,以便于进行多选。

你绝对没必要构建一个完全自定义的解决方案。Dash 提供了实现此目标的内置方法。诀窍就是使用 multi=True 参数 dcc.Dropdown 。这将使你的下拉菜单在选择时展开,显示所有可用选项及其各自的复选框。用户可以选中或取消选中任意数量的选项。

以下是代码示例:

import dash
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash(__name__)

app.layout = html.Div([
    dcc.Dropdown(
        id='demo-dropdown',
        options=[
            {'label': 'New York City', 'value': 'NYC'},
            {'label': 'Montreal', 'value': 'MTL'},
            {'label': 'San Francisco', 'value': 'SF'}
        ],
        value=['MTL', 'SF'],  # 设置默认选中的值
        multi=True  # 启用多选
    ),
    html.Div(id='dd-output-container')
])

@app.callback(
    dash.Output('dd-output-container', 'children'),
    [dash.Input('demo-dropdown', 'value')]
)
def update_output(selected_values):
    return f'你选择了:{", ".join(selected_values)}'

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

在这个例子中:

  • multi=True 启用下拉列表中的多选功能。
  • value=['MTL', 'SF'] 在初始状态下选择“Montreal”和“San Francisco”。
  • 该回调函数演示了如何使用所选值,但你可以根据自己的需要进行调整。

通过这种方法,你保留了 dcc.Dropdown (包括搜索功能)的所有内置功能,同时允许用户以更友好的方式选择多个选项。

标签:python,dropdown,plotly-dash
From: 78786132

相关文章

  • Python函数获取匹配和错误记录
    我有一个以下格式的json文件:[{"type":"BEGIN","id":"XYZ123"},{"type":"END","id":"XYZ123",},{"type":&......
  • python,替换标点符号但保持特殊单词完整的最佳方法
    我正在制作一个调制函数,它将采用带有特殊字符(@&*%)的关键字,并保持它们完整,同时从句子中删除所有其他标点符号。我设计了一个解决方案,但它非常庞大,而且可能比需要的更复杂。有没有一种方法可以以更简单的方式做到这一点。简而言之,我的代码匹配特殊单词的所有实例以查找跨度。然......
  • Python 检测 USB 设备 - IDLE 和 CMD 解释器之间的不同结果
    我正在尝试解决VDI解决方案中智能卡设备的USB重定向问题。我正在使用pyscard模块作为智能卡。对于进一步的上下文,主要问题是当浏览器插件调用用于处理智能卡的python脚本时,未检测到读卡器。关于问题,当我从CMD解释器运行此代码片段时,我收到空列表,表示系统上未找......
  • Python查找字符串的CRC32
    我尝试获取字符串数据类型变量的CRC32,但出现以下错误:>>>message='helloworld!'>>>importbinascii>>>binascii.crc32(message)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:aby......
  • 使用python,如何创建重复的工作时间表
    这是我们公司的小组工作安排表。为三班制,2组日夜工作,1组休息。重复白天工作4天休息2天,然后再次夜间工作4天休息2天的时间表。我想使用python(pandas)自动安排在8月9日之后。抱歉英语不好,提前感谢您的帮助以下是使用Python和Pandas创建重复工作时间表的代码......
  • venv 已激活,但 pip 安装仍然默认进行,并且 python 在源代码中看不到该库
    在终端shell中的vscode中输入“whichpython”显示默认路径:C:\Users\erjan\AppData\Local\Programs\Python\Python311\python.exe(my_venv)但是(my_venv)意味着我的venv处于活动状态,我做了pipinstalltransformers,但下面的代码仍然显示错误-无法看到......
  • 在Python多处理中执行二进制信号量或互斥体以进行上下文切换操作
    我正在尝试自动化win应用程序和java应用程序之间的同步关系。我的标准是:启动win和jav应用程序在jav应用程序中执行命令等待jav应用程序的响应使用jav应用程序的响应到Windows应用程序作为输入。在jav应用程序中执行命令win应用程序......
  • 在spyder-python上随机出现的这些奇怪的亮点是什么
    在此处输入图像描述每次我单击此按钮或进行任何更改时,都会创建奇怪的突出显示,当我最小化功能时更是如此。有什么建议如何摆脱这些或可能的原因是什么?谢谢!我尝试更改外观首选项中的设置,但无法影响问题。很抱歉,我无法直接查看或与Spyder界面交互。我是一个AI......
  • 比较Python字典并找到缺失的元素
    我遇到了一个问题,我已经尝试了几天但没有得到任何结果。我想比较两个字典,在一个字典中有“赛前”足球比赛,在第二个字典中有“现场”足球比赛。我想将它们相互比较并打印它们(如果有)没有赛前比赛直播。示例1pre=[{"Home":"Genoa","Away":"In......
  • Python使用Visual Studio打印功能不显示输出
    任务:检查一个整数是正数还是负数。检查整数是否能被2整除。当输入0时,我需要退出循环并报告每个计数和总和。print函数没有显示任何输出。这是我从defmain()开始使用的代码defmain():countpositive=0countnegative=0count_divisible_by_2=0sump......