Python数据可视化Dash开源库Bootstrap之折叠列表Accordion

boyanx3个月前技术教程10

本章关键字:Python数据可视化、Dash开源库Bootstrap、Poltly Dash Bootstrap控件、折叠列表用法、accordion函数用法

通过前面章节的介绍,我们已经基本了解了Python如何通过Dash Bootstrap Components组件做基础的布局,接下来我们开始逐步介绍Bootstrap库中的各种组件的基本用法,对基础还不了解的,可以翻找以前的文章或视频。

本章节我们详细介绍下如何使用Python操作Bootstrap库中的折叠列表控件,Accordion,即折叠列表。

这里我们主要介绍两个组件:Accordion与AccordionItem,每个节区头部表格都由AccordionItem的标题支柱确定,效果如下图:

Demo代码如下所示:

import dash_bootstrap_components as dbc
from dash import html, Input, Output, callback

accordion_html = html.Div([
    html.Br(),
    html.P(html.Strong('使用Accordion组件创建可折叠列表', style={'color': 'rgb(255, 153, 51)'})),
    html.Br(),
    dbc.Accordion(
        [
            dbc.AccordionItem(
                [
                    html.P("这是项目一里面的内容"),
                    dbc.Button("可点击按钮"),
                ],
                title="项目一",
                item_id='项目一的ItemId'
            ),
            dbc.AccordionItem(
                [
                    html.P("这是项目二里面的内容"),
                    dbc.Button("不可点击按钮", color="danger"),
                ],
                title="项目二",
                item_id='项目二的ItemId',
            ),
            dbc.AccordionItem("这是项目一里面的内容", title="项目三", item_id='项目三的ItemId'),
        ],
        id='accordion_always_open',
        always_open=True, # 可以使accordion items在另一个item打开时保持打开状态。
    ),
    html.Div(id='accordion_contents_open_ids', className='mt-3')
])

@callback(
    Output('accordion_contents_open_ids', 'children'),
    # active_item当前活动项的item_id,参数为字符串或列表。如果没有为活动项目指定item_id,则默认为item-i,
    # 其中i是项目的索引(从0开始)。如果always_open=True,这需要是一个字符串id列表。
    [Input('accordion_always_open', 'active_item')]
)
def change_item(item):
    return f'当前选择的Item={item}'

接下来,我们来详细介绍下这两个组件的用法

Accordion

  • children:该组件的子组件,可传入list或者单个的dash组件,也可传入字符串或者数字。
  • id:此组件的ID,用于识别回调中的Dash组件。ID在应用中的所有组件中都必须是唯一的。
  • active_item:当前活动项的item_id,参数为字符串或列表。如果没有为活动项目指定item_id,则默认为item-i,其中i是项目的索引(从0开始)。如果always_open=True,这需要是一个字符串id列表。
  • always_open:布尔值,默认False,通过使用always_open道具,可以使accordion items在另一个item打开时保持打开状态。
  • class_name:字符串,通常与CSS一起使用,以设置具有公共属性的元素的样式。
  • flush:布尔值,用它的父容器全平面渲染accordion。
  • key:组件的唯一标识符,用于在渲染组件时提高React.js的性能。
  • loading_state:该对象保存来自dash-renderer的加载状态。
  • persisted_props:值等于的列表:'active_item's,默认[“active_item”],属性其用户交互在刷新组件或页面后将持续存在。因为只允许value,所以通常可以忽略这个道具。
  • persistence:布尔或字符串或数字,用于允许在刷新组件(或页面)时保持此组件中的用户交互。如果persistent是真值,并且没有从它之前的值发生变化,那么用户在使用应用程序时更改的值将保持该变化,只要新值也匹配最初给出的值。与persistence_type一起使用。
  • persistence_type:值等于'local', 'session', 'memory',默认'local',持久用户更改的存储位置:内存:只保存在内存中,在页面刷新时重置。本地:窗口。localStorage,在浏览器退出后保存数据。会话:窗口。sessionStorage,一旦浏览器退出,数据将被清除。
  • start_collapsed:布尔,默认False,设置为True为所有项目最初被折叠。
  • style:定义将覆盖先前设置的样式的CSS样式。

AccordionItem

  • children:该组件的子组件,可传入list或者单个的dash组件,也可传入字符串或者数字。
  • id:此组件的ID,用于识别回调中的Dash组件。ID在应用中的所有组件中都必须是唯一的。
  • class_name:字符串,通常与CSS一起使用,以设置具有公共属性的元素的样式。
  • item_id:字符串,可选的项目标识符,用于确定在没有指定的情况下哪个项目是可见的,并且AccordionItem在Accordion组件中使用,itemId将被设置为“item-i”,其中i是传递给Accordion组件的列表项中项目的位置(零索引)。
  • loading_state:该对象保存来自dash-renderer的加载状态。
  • style:定义将覆盖先前设置的样式的CSS样式。
  • title:显示的标题。

我们可以对应Demo代码,一项项去理解各个参数的含义,这样在实际使用过程中就能如鱼得水了。

相关文章

RocketMQ源码详解(NameServer启动流程)

一、NameServer简介消息中间件的设计思路一般是基于主题订阅发布的机制,消息生产者(Producer)发送某一个主题到消息服务器,消息服务器负责将消息持久化存储,消息消费者(Consumer)订...

再见 Cursor,从0到1用上Claude Code后,惊呼这才是生产力工具|保姆级教程

Claude Code 凭借其强大的功能,彻底改变了作者的编程方式。本文从安装配置到核心功能解析,再到实战案例,全方位展示了 Claude Code 的强大生产力,助你从 0 到 1 高效开发。最近,...

SpringBoot 使用WebJars统一管理静态资源

原文地址:https://dwz.cn/uIYZCLgW作者:yizhiwazi推荐使用Webjars的三大理由:将静态资源版本化,更利于升级和维护。剥离静态资源,提高编译速度和打包效率。实现资源共享...

Python数据可视化Dash开源库Bootstrap信息提示框Alert

本章关键字:Python做Web网页开发、Dash开源库Bootstrap、信息提示框用法、Bootstrap库Alert函数用法本章节我们来了解了Python数据可视化Dash框架中的开源库Dash...

JVM体系结构介绍——查看JVM不同组件概述以及牛逼图表

每个Java开发人员都知道字节码将由JRE(Java运行时环境)执行。但是很多人不知道JRE是Java虚拟机(JVM)的实现,它分析字节码、解释代码并执行。作为开发人员,了解JVM的体系结构非常重要,...

Bootstrap Blazor Viewer 图片浏览器 组件更新

支持流转图片(ImageFromStream), 用于本地项目例如 MAUI Blazor,Blazor hybrid示例:https://blazor.app1.es/viewer使用方法:1.nu...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。