【Dash】feffery_antd_components 按钮组件的应用

一、feffery_antd_componenet 中的 AntdFloatButton 和 AntdFloatButtonGroup

AntdFloatButton 和 AntdFloatButtonGroup 是两个用于创建悬浮按钮和悬浮按钮组的组件。

AntdFloatButton 是单个悬浮按钮组件,它提供了多种属性来定义按钮的外观及行为。AntdFloatButtonGroup 是一个悬浮按钮组组件,包含多个悬浮按钮,可通过 trigger 属性设置触发方式,通过open属性设置为受控模式。

详细说明可在 feffery_antd_components 的官方文档中找到相关组件的详细信息和使用示例。

二、代码

以下是所有悬浮按钮组件的演示代码的整合,方便大家学习和使用:

import dash
from dash import html
import feffery_antd_components as fac
from dash.dependencies import Output, Input, State

app = dash.Dash(__name__)

app.layout = html.Div(
    [
        fac.AntdHeader(
            fac.AntdTitle(
                '悬浮按钮 AntdFloatButton',
                level=2,
                style={'color': 'white'},
            ),
            style={
                'display': 'flex',
                'justifyContent': 'center',
                'alignItems': 'center',   # 对齐方式
            },
        ),

        # 悬浮按钮演示
        fac.AntdContent(
            fac.AntdTitle(
                '悬浮按钮演示:',
                level=4,
                style={'margin': '10px'},
            ),
            style={'display': 'flex', 'alignItems': 'center'},
        ),

        # 悬浮按钮种类
        fac.AntdContent(
            fac.AntdText(
                '最基础的悬浮按钮',
                style={'margin': '10px', 'fontSize': '16px', 'height': '100%'},
            ),
            style={'height': '49px', 'backgroundColor': '#F8F8F8', 'borderBottom': '1px solid #ECECEA',
                   'display': 'flex', 'alignItems': 'center'},
        ),
        fac.AntdFloatButton(
            style={'top': '115px', 'left': '260px'},
        ),

        # 不同类型的悬浮按钮
        fac.AntdContent(
            fac.AntdText(
                '不同类型的悬浮按钮',
                style={'margin': '10px', 'fontSize': '16px'},
            ),
            style={'height': '49px', 'backgroundColor': 'white', 'borderBottom': '1px solid #ECECEA',
                   'display': 'flex', 'alignItems': 'center'},
        ),
        fac.AntdFloatButton(
            style={'top': '165px', 'left': '260px'},
        ),
        fac.AntdFloatButton(
            style={'top': '165px', 'left': '310px'},
            type='primary',
        ),

        # 不同形状的悬浮按钮
        fac.AntdContent(
            fac.AntdText(
                '不同形状的悬浮按钮',
                style={'margin': '10px', 'fontSize': '16px'},
            ),
            style={'height': '49px', 'backgroundColor': '#F8F8F8', 'borderBottom': '1px solid #ECECEA',
                   'display': 'flex', 'alignItems': 'center'},
        ),
        fac.AntdFloatButton(
            style={'top': '215px', 'left': '260px'},
            type='primary',
        ),
        fac.AntdFloatButton(
            style={'top': '215px', 'left': '310px', 'width': '40px', 'height': '40px'},
            type='primary',
            shape='square',
        ),
        fac.AntdFloatButton(
            style={'top': '215px', 'left': '360px', 'height': '40px'},
            type='primary',
            shape='square',
        ),

        # 为悬浮按钮自定义图标元素
        fac.AntdContent(
            fac.AntdText(
                '为悬浮按钮自定义图标元素',
                style={'margin': '10px', 'fontSize': '16px'},
            ),
            style={'height': '49px', 'backgroundColor': 'white', 'borderBottom': '1px solid #ECECEA',
                   'display': 'flex', 'alignItems': 'center'},
        ),
        fac.AntdFloatButton(
            style={'top': '265px', 'left': '260px'},
            icon=fac.AntdIcon(icon='antd-question'),
        ),
        fac.AntdFloatButton(
            style={'top': '265px', 'left': '310px'},
            icon=fac.AntdIcon(icon='antd-bulb'),
            type='primary',
        ),

        # 为悬浮按钮添加额外描述信息
        fac.AntdContent(
            fac.AntdText(
                '为悬浮按钮添加额外描述信息',
                style={'margin': '10px', 'fontSize': '16px'},
            ),
            style={'height': '49px', 'backgroundColor': '#F8F8F8', 'borderBottom': '1px solid #ECECEA',
                   'display': 'flex', 'alignItems': 'center'},
        ),
        fac.AntdFloatButton(
            description='描述信息',
            style={'top': '315px', 'left': '260px'},
        ),
        fac.AntdFloatButton(
            description='描述信息',
            shape='square',
            style={'top': '315px', 'left': '310px', 'height': '40px'},
        ),
        fac.AntdFloatButton(
            description='测试',
            shape='square',
            type='primary',
            icon=fac.AntdIcon(icon='antd-question'),
            style={'top': '315px', 'left': '360px', 'height': '40px'},
        ),

        # 为悬浮按钮添加额外气泡卡片信息
        fac.AntdContent(
            fac.AntdText(
                '为悬浮按钮添加额外气泡卡片信息',
                style={'margin': '10px', 'fontSize': '16px'}
            ),
            style={'height': '49px', 'backgroundColor': 'white', 'borderBottom': '1px solid #ECECEA',
                   'display': 'flex', 'alignItems': 'center'},
        ),
        fac.AntdFloatButton(
            tooltip='气泡卡片信息',
            style={'top': '365px', 'left': '260px'},
        ),

        # 为悬浮按钮添加跳转链接
        fac.AntdContent(
            fac.AntdText(
                '为悬浮按钮添加跳转链接',
                style={'margin': '10px', 'fontSize': '16px'},
            ),
            style={'height': '49px', 'backgroundColor': '#F8F8F8', 'borderBottom': '1px solid #ECECEA',
                   'display': 'flex', 'alignItems': 'center'},
        ),
        fac.AntdFloatButton(
            href='/',
            target='_blank',
            style={'top': '415px', 'left': '260px'},
        ),

        # 为悬浮按钮添加点击事件
        fac.AntdContent(
            fac.AntdText(
                '为悬浮按钮添加点击事件',
                style={'margin': '10px', 'fontSize': '16px',
                       'display': 'flex', 'alignItems': 'center'},
            ),
        ),
        fac.AntdFloatButton(
            id='float-button-basic-event',
            description='点我',
            type='primary',
            style={'top': '465px', 'left': '260px'},
        ),
        fac.AntdContent(
            fac.AntdText(
                id='float-button-basic-event-output',
                style={'margin': '10px'}
            ),
            style={'height': '29px', 'backgroundColor': 'white', 'borderBottom': '1px solid #ECECEA',
                   'display': 'flex', 'alignItems': 'center'},
        ),

        # 悬浮按钮组演示
        fac.AntdContent(
            fac.AntdTitle(
                '悬浮按钮组演示:',
                level=4,
                style={'margin': '10px'},
            ),
            style={'height': '30px', 'display': 'flex', 'alignItems': 'center'}
        ),
        html.Div(
            fac.AntdSpace(
                [
                    fac.AntdContent(
                        fac.AntdText(
                            '最基础的悬浮按钮组',
                            style={'margin': '10px', 'fontSize': '16px',
                                   'display': 'flex', 'alignItems': 'center'},
                        ),
                    ),
                    fac.AntdContent(
                        fac.AntdText(
                            '触发菜单模式',
                            style={'margin': '10px', 'fontSize': '16px',
                                   'display': 'flex', 'alignItems': 'center'},
                        ),
                    ),
                    fac.AntdContent(
                        fac.AntdText(
                            '不同菜单的展开方向',
                            style={'margin': '10px', 'fontSize': '16px',
                                   'display': 'flex', 'alignItems': 'center'},
                        ),
                    ),
                    fac.AntdContent(
                        fac.AntdText(
                            '按钮组的回调监听',
                            style={'margin': '10px', 'fontSize': '16px',
                                   'display': 'flex', 'alignItems': 'center'},
                        ),
                    ),
                ],
                size='large',
            ),
        ),
        html.Div(
            fac.AntdSpace(
                [
                    fac.AntdContent(
                        fac.AntdText(
                            'hover',
                            style={'margin': '5px', 'fontSize': '16px'}
                        ),
                    ),
                    fac.AntdContent(
                        fac.AntdText(
                            'click',
                            style={'margin': '5px', 'fontSize': '16px'},
                        ),
                    ),
                    fac.AntdSegmented(
                        id='float-button-group-placement',
                        options=[
                            {'label': placement, 'value': placement} for placement in
                            ['top', 'right', 'left', 'bottom']
                        ],
                        value='top',
                        block=True,
                        size='small',
                    ),
                    fac.AntdText('Open Status:', id='float-button-group-basic-event-output'),
                ],
                size='large',
            ),
            style={'marginLeft': '180px'}
        ),
        html.Div(
            [
                fac.AntdFloatButtonGroup(
                    [
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-question')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-setting')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-mail')),
                    ],
                    style={'right': '95%', 'bottom': '3%'},
                ),
                fac.AntdFloatButtonGroup(
                    [
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-question')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-setting')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-mail')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-notification')),
                    ],
                    shape='square',
                    style={'right': '90%', 'bottom': '3%'},
                ),
                fac.AntdFloatButtonGroup(
                    [
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-question')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-setting')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-mail')),
                    ],
                    trigger='hover',
                    icon=fac.AntdIcon(icon='antd-menu'),
                    type='primary',
                    tooltip='trigger: hover',
                    style={'right': 'calc(85% - 30px)', 'bottom': '3%'},
                ),
                fac.AntdFloatButtonGroup(
                    [
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-question')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-setting')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-mail')),
                    ],
                    trigger='click',
                    icon=fac.AntdIcon(icon='antd-menu'),
                    type='primary',
                    tooltip='trigger: click',
                    style={'right': 'calc(78% - 10px)', 'bottom': '3%'},
                ),
                fac.AntdFloatButtonGroup(
                    [
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-question')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-setting')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-mail')),
                    ],
                    id='float-button-group-placement-demo',
                    trigger='click',
                    style={'right': 'calc(70% - 20px)', 'bottom': '15%'},
                    icon=fac.AntdIcon(icon='antd-menu'),
                    type='primary',
                ),
                fac.AntdFloatButtonGroup(
                    [
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-question')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-setting')),
                        fac.AntdFloatButton(icon=fac.AntdIcon(icon='antd-mail')),
                    ],
                    id='float-button-group-basic-event',
                    trigger='click',
                    style={'right': 'calc(55% - 20px)', 'bottom': '3%'},
                    icon=fac.AntdIcon(icon='antd-menu'),
                    type='primary',
                ),
            ],
        ),
    ],
)


# 悬浮按钮点击事件 回调函数
@app.callback(
    Output('float-button-basic-event-output', 'children'),
    Input('float-button-basic-event', 'nClicks'),
    prevent_initial_call=True,
)
def float_button_basic_event(nClicks):
    return f"nClicks: {nClicks}"


@app.callback(
    Output('float-button-group-placement-demo', 'placement'),
    Input('float-button-group-placement', 'value'),
)
def float_button_group_placement_demo(value):
    return value


@app.callback(
    Output('float-button-group-basic-event-output', 'children'),
    Input('float-button-group-basic-event', 'open'),
    prevent_initial_call=True,
)
def float_button_group_basic_event(open):
    return f'Open Status: {open}'


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







本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/900422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WebView渲染异常导致闪退解决方案

背景: App主页面使用了大量WebView容器(10个以上)显示图表信息,最新发现bugly上面出现一些关于浏览器Native Crash,如下: 经排查,是WebView渲染失败导致Crash,可以通过webView.loadUrl("chrome://cra…

Pycharm搭配miniConda(Anaconda的轻量版本)建立虚拟环境管理不同项目不同依赖

需求 pip安装的版本会在全局环境下生效,导致不用的项目使用的是同一套环境,容易出现别人的项目跑的好好的,到了自己电脑就不能跑的问题需求 1.不同的项目可以设置不同的环境,同时支持自动切换环境2.便捷,轻量化管理当前的环境 如果可以,最好有一个可视化的平台,anaconda倒是支…

图像分割-DeepLab

DeepLabV3源码链接:https://github.com/bubbliiiing/deeplabv3-plus-pytorch(打不开私信我获取) 一、简介 一般的模型如Unet一般用于医学领域,小目标,如细胞分割。 为了增大感受野(从而更好的获得全局特征…

docker 镜像详解

Docker镜像是一种轻量级、可移植的软件打包格式,它包含了运行应用程序所需的一切,是构建和分发应用程序的基础。以下是对Docker镜像的详细解释: 一、镜像的定义 镜像本质上是一个只读文件,包含了文件系统、源码、库文件、依赖、…

wordcloud 字体报错

wordcloud 字体报错 词云库报错:Only supported for TrueType fonts字体文件问题pillow版本的问题wordcloud版本问题(我的最终解决方案) 词云库报错:Only supported for TrueType fonts 字体文件问题 解决方法 写绝对路径 &…

【CSS3】css开篇基础(4)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

二百七十一、Kettle——ClickHouse增量导入数据清洗记录表

一、目的 在完成错误数据表任务后,需要对每条错误数据的错误字段及其字段值进行分析 Hive中原有SQL语句和ClickHouse现有SQL语句很大不同 二、Hive中原有代码 2.1 表结构 --31、静态排队数据清洗记录表 create table if not exists hurys_db.dwd_data_clean_…

洞察前沿趋势!2024深圳国际金融科技大赛——西丽湖金融科技大学生挑战赛技术公开课指南

在当前信息技术与“互联网”深度融合的背景下,金融行业的转型升级是热门话题,创新与发展成为金融科技主旋律。随着区块链技术、人工智能技术、5G通信技术、大数据技术等前沿科技的飞速发展,它们与金融领域的深度融合,正引领着新型…

uniapp:sqlite最详细教程,小白可直接粘贴复制

新建uniapp项目,需要4个页面, loading 启动页:打开数据库,判断数据表是否存在,表内是否有数据,创建数据表的逻辑。 register 注册页:数据表已存在,但是没有数据,需要进入该页面注册第一条数据 index 首页:展示数据列表内的数据,可修改默认,添加新数据 edit 编辑:编…

linux面试题复习

前言 现在只是初版,很多格式我还没有改好,会慢慢修改订正。 可能用到的网址:在线 EXCEL 到 MARKDOWN 转换器。 参考了很多网上的面试题和外网上的面试题: 参考文档: 程序员的50大Linux面试问题及答案 Top 60 Linux …

机床发那科转profinet IO项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关采集发那科机床数据 2 5 用PROFINET IO协议转发数据 5 6 案例总结 7 1 案例说明 设置网关采集发那科机床数据把采集的数据转成profinet IO协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关&a…

【安当产品应用案例100集】024-BYOE及BYOK在IaaS场景中的应用

在云计算环境中,尤其是涉及到敏感数据时,企业用户可能会选择自带加密工具或密钥(即BYOE或BYOK),以确保数据在传输和存储过程中的安全性。这种方式可以防止云服务提供商访问或泄露加密数据,增强数据保护。 …

OpenCV视觉分析之目标跟踪(1)计算密集光流的类DISOpticalFlow的介绍

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 这个类实现了 Dense Inverse Search (DIS) 光流算法。更多关于该算法的细节可以在文献 146中找到。该实现包含了三个预设参数集,以提…

基于Java+Springboot+Vue开发的鲜花商城管理系统

项目简介 该项目是基于JavaSpringbootVue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜…

网络服务请求流程简单理解

网络流程: DNS负责将域名解析为IP地址,ALB可以在多个服务实例之间分配流量,APISIX作为API网关处理更细粒度的流量管理,Service在Kubernetes中为Pod提供稳定的访问入口,而Kubernetes则负责整个应用的部署、扩展和运维。…

基于STM32F103的LED闪烁仿真-定时器中断方式

基于STM32F103的LED闪烁仿真 仿真软件: Proteus 8.17 编程软件: Keil 5 定时器简介: 高级控制定时器(TIM1和TIM8)由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。 它适合多种用途,包含测量输入信…

FastGPT学习(2)- 本地开发通过Navicat管理MongoDB、PostgreSQL数据库

1. 背景 前期已经完成FastGPT的本地化部署工作,通过Docker启动FastGPT的相关容器即可运行。(共6个容器) 2.本地化开发 2.1 前置依赖 2.2 源码拉取 git clone gitgithub.com:labring/FastGPT.git2.3 数据库管理 本地化运行的FastGPT使用…

007、链表的回文结构

0、题目描述 链表回文结构 1、法1 一个复杂的问题可以拆解成几个简单的问题,找中间节点和逆置链表(翻转链表)之前都做过。 class PalindromeList { public://1、找中间节点ListNode* FindMid(ListNode* A){if (A nullptr || A->next …

博客搭建之路:hexo搜索引擎收录

文章目录 hexo搜索引擎收录以百度为例 hexo搜索引擎收录 hexo版本5.0.2 npm版本6.14.7 next版本7.8.0 写博客的目的肯定不是就只有自己能看到,想让更多的人看到就需要可以让搜索引擎来收录对应的文章。hexo支持生成站点地图sitemap 在hexo下的_config.yml中配置站点…

‘perl‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

‘perl’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 明明已经根据教程安装了perl环境,但是在cmd中依赖报该错误,本章教程提供解决办法。 一、激活perl环境 state shell ActiveState-Perl-5.36.0此时输入perl -v 是可以直接输出perl版本号的。 二、找到perl的执…