【Dash】feffery_antd_componenet 中的 AntdSpace

news/2025/1/15 15:23:40/

一、feffery_antd_componenet 中的 AntdSpace

feffery_antd_components(简称fac)中的AntdSpace组件是一个基于Ant Design的Dash第三方组件,它用于在水平或垂直方向上放置多个元素,并提供元素之间的间距。以下是AntdSpace组件的一些主要功能:

1、设置间距:

可以通过size属性来设置元素之间的间距,支持预设的small、middle、large三种尺寸,也可以自定义间距。

2、对齐方式:

可以设置子元素的对齐方式,通过align属性,可以设置为start、end、center、baseline。

3、自动换行:

通过wrap属性,可以设置是否自动换行,仅在水平方向上有效。

4、分隔符:

可以使用split属性来设置分隔符,例如在链接之间添加垂直分隔线。

5、紧凑模式:

AntdSpace.Compact用于表单组件之间紧凑连接且合并边框,支持的组件包括Button、AutoComplete、Cascader、DatePicker、Input、InputNumber、Select、TimePicker等。

6、垂直方向:

AntdSpace组件默认是水平方向的,但也可以设置为垂直方向,通过direction属性设置为vertical。

7、自定义尺寸:

可以通过传递一个数字给size属性来自定义间距大小。

8、预设间距:

AntdSpace组件提供了预设的间距大小,也可以通过CSS来进一步自定义样式。

二、代码

python">import dash
from dash import html
import feffery_antd_components as fac
from dash.dependencies import Output, Input, Stateapp = dash.Dash(__name__)app.layout = html.Div([fac.AntdSpace([fac.AntdDivider('AntdSpace 的应用', innerTextOrientation='center'),fac.AntdSpace([fac.AntdText('对齐方向: '),fac.AntdRadioGroup(id='space-align-input',options=['start', 'end', 'center', 'baseline'],value='start',),  # 单选按钮],size='large',)],direction='vertical',size='large',style={'width': '100%',},),fac.AntdSpace([fac.AntdText('间距大小: '),fac.AntdRadioGroup(id='space-size-input',options=['small', 'middle', 'large', '48'],value='small',  # 子容器改写默认值为 small),],size='large',   # AntdSpace设置size 默认值为 largestyle={'width': '100%',}),fac.AntdSpace(fac.AntdButton('添加 addSplitLIne 分割线', id='space-add-split-line', type='primary'),style={'padding': '5px',}),fac.AntdSpace(fac.AntdButton('添加自定义分割线', id='space-add-line', type='primary'),style={'padding': '5px',}),fac.AntdParagraph(),fac.AntdSpace(fac.AntdButton('设置元素超宽后自动换行(wrap=True)', id='space-wrap', type='primary'),style={'padding': '5px'}),fac.AntdSpace([fac.AntdSpace([fac.AntdButton(button_type, type=button_type, danger=danger)for button_type, danger in [['primary', False], ['default', False], ['dashed', False], ['text', False], ['link', False]] * 5],wrap=False,addSplitLine=True,id='space-button1',),fac.AntdSpace([fac.AntdButton(button_type, type=button_type, danger=danger)for button_type, danger in [['primary', True], ['default', True], ['dashed', True], ['text', True], ['link', True]] * 5],wrap=False,addSplitLine=True,id='space-button2',# customSplit=html.Div(#     style={'height': 30, 'borderRight': '1px dashed #8c8c8c'}# )),],direction='vertical',# id='space-button',),fac.AntdParagraph(),# 横向拓展fac.AntdSpace([html.Div(style={'backgroundColor': 'rgba(255, 255, 207, 1)','height': '20px','width': '50px',}),html.Div(style={'backgroundColor': 'rgba(250, 240, 155, 1)','height': '40px','width': '50px',}),html.Div(style={'backgroundColor': 'rgba(244, 234, 98, 1)','height': '60px','width': '50px',}),html.Div(style={'backgroundColor': 'orange','height': '80px','width': '50px',})] * 2,id='space-align-output1',align='start',  # 系统默认值也是 startsize='large',style={'backgroundColor': 'rgba(241, 241, 241, 0.8)','padding': '10px',},addSplitLine=True,),# 纵向拓展fac.AntdDivider(),fac.AntdSpace([html.Div(style={'backgroundColor': 'rgba(243, 230, 195, 1)','height': '50px','width': '20px',}),html.Div(style={'backgroundColor': 'rgba(217, 188, 154, 1)','height': '50px','width': '40px',},),html.Div(style={'backgroundColor': 'rgba(218, 158, 106, 1)','height': '50px','width': '60px',}),],id='space-align-output2',align='start',  # 系统默认值也是 startdirection='vertical',size='large',style={'backgroundColor': 'rgba(241, 241, 241, 0.8)','padding': '12px',},),]
)@app.callback([Output('space-align-output1', 'align'),Output('space-align-output2', 'align'),Output('space-button1', 'size'),Output('space-button2', 'size'),Output('space-align-output1', 'size'),Output('space-align-output2', 'size'),Output('space-button1', 'addSplitLine'),Output('space-button2', 'addSplitLine'),Output('space-align-output1', 'addSplitLine'),Output('space-button1', 'customSplit'),Output('space-button2', 'customSplit'),Output('space-button1', 'wrap'),Output('space-button2', 'wrap'),],[Input('space-align-input', 'value'),   # align 对齐方向Input('space-size-input', 'value'),    # size 间距大小Input('space-add-split-line', 'nClicks'),  # addSplitLineInput('space-add-line', 'nClicks'),Input('space-wrap', 'nClicks'),]
)
def update_space(value_align, value_size, nclick_add_split_line, nclick_add_line, nclick_wrap):if value_align:re_align = value_alignif value_size and value_size == '48':re_size = 48else:re_size = value_sizeif nclick_add_split_line and nclick_add_split_line % 2 == 1:re_app_split_line = Trueelse:re_app_split_line = Falseif nclick_add_line and nclick_add_line % 2 == 1:re_add_line = html.Div(style={'height': 30, 'borderRight': '1px dashed #8c8c8c'})else:re_add_line = Noneif nclick_wrap and nclick_wrap % 2 == 1:re_wrap = Trueelse:re_wrap = Falsereturn [re_align, re_align,re_size, re_size, re_size, re_size,re_app_split_line, re_app_split_line, re_app_split_line,re_add_line, re_add_line,re_wrap, re_wrap]if __name__ == '__main__':app.run_server(debug=True)

 

 


http://www.ppmy.cn/news/1522534.html

相关文章

鸿蒙开发中实现自定义弹窗 (CustomDialog)

效果图 #思路 创建带有 CustomDialog 修饰的组件 ,并且在组件内部定义controller: CustomDialogController 实例化CustomDialogController,加载组件,open()-> 打开对话框 , close() -> 关闭对话框 #定义弹窗 (CustomDial…

Google Maps API申请和集成到React Native应用中的教程

Google Maps API申请和集成到React Native应用中的教程 访问Google Cloud Console 打开浏览器,访问 https://console.cloud.google.com/使用您的Google账号登录 选择或创建项目 在页面顶部的项目下拉菜单中,选择现有项目或创建新项目如果创建新项目,点击"新建项目",…

本地如何快速启动静态服务器

本地快速启动静态服务器 有许多第三方库可以帮助你快速启动一个静态服务器,甚至无需编写代码。通过命令行运行这些库后,它们会自动启动一个服务器并打开指定端口,展示当前目录下的文件内容: 电脑得提前安装NodeJS 1、http-serv…

yum源404导致Could not resolve host: mirrorlist.centos.org

yum源更换错误问题记录 网上查询到的部分源过旧,现在已经不存在404,可以将报错信息中的无法访问的地址在浏览器中尝试。如下http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock这个地址就已经不在。 可以网上搜一下最新…

UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件…

关于HTTP SESSION

一个浏览器客户端共享一个session,当浏览器请求到服务器时 通过HttpSession session request.getSession(false);来创建session。 HttpSession session request.getSession(false); 当参数为false时,服务器会通过sessionID找,如果当前服务器…

启动与登录Mysql

1.启动与停止MYSQL服务 启动MySQL 服务的命令 以管理员身份打开Windows 的命令行窗口,在命令提示符后输入以下命令启动MySQL 服务: net start[ 服务名称] 也可以直接输入以下命令: net start 按【Enter】键执行该命令,默认启…

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以…