如何将 Python Dash 清单分成几列?
How to divide a Python Dash checklist into several columns?
我是 Dash 的初学者,我从未用 html 编写过代码,所以我不确定这一切是如何工作的。
我一直在尝试将清单分成几列。
这是我的部分代码:
html.Div(
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'A1', 'value': 'I1ST1'},
{'label': 'A2', 'value': 'I2ST1'},
{'label': 'A3', 'value': 'I3ST1'},
{'label': 'A4', 'value': 'I4ST1'},
{'label': 'A5', 'value': 'I5ST1'},
{'label': 'A6', 'value': 'I6ST1'}
],
values='I1ST1',
labelStyle = {'display': 'block'}
),
),
html.Div(
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'B1', 'value': 'I1ST2'},
{'label': 'B2', 'value': 'I2ST2'},
{'label': 'B3', 'value': 'I3ST2'},
{'label': 'B4', 'value': 'I4ST2'},
{'label': 'B5', 'value': 'I5ST2'},
{'label': 'B6', 'value': 'I6ST2'}
],
values='I1ST2',
labelStyle = {'display': 'block'}
)
),
html.Div(
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'C1', 'value': 'I1MT'},
{'label': 'C2', 'value': 'I2MT'},
{'label': 'C3', 'value': 'I3MT'}
],
values='I1MT',
labelStyle = {'display': 'block'}
)
)
]
)
我目前得到这样的东西:
☒ A1
☐ A2
☐ A3
☐ A4
☐ A5
☐ A6
☒ B1
☐ B2
☐ B3
☐ B4
☐ B5
☐ B6
☒ C1
☐ C2
☐ C3
我想要的是这样的:
☒ A1 ☒ B1 ☒ C1
☐ A2 ☐ B2 ☐ C2
☐ A3 ☐ B3 ☐ C3
☐ A4 ☐ B4
☐ A5 ☐ B5
☐ A6 ☐ B6
我尝试在 labelStyle 函数中添加一些 CSS 函数(浮动、宽度),但其中 none 有效。
我这样做对吗?我该怎么办?
我们实现这一目标的一种方法如下,
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash(__name__)
app.layout = html.Div([
html.Div(
style={'width':'5%', 'height':'100%','float':'left'},
children=[
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'A1', 'value': 'I1ST1'},
{'label': 'A2', 'value': 'I2ST1'},
{'label': 'A3', 'value': 'I3ST1'},
{'label': 'A4', 'value': 'I4ST1'},
{'label': 'A5', 'value': 'I5ST1'},
{'label': 'A6', 'value': 'I6ST1'}
],
values=['I1ST1'],
labelStyle = {'display': 'block'}
),
]
),
html.Div(
style={'width':'5%', 'height':'100%','float':'left'},
children=[
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'B1', 'value': 'I1ST2'},
{'label': 'B2', 'value': 'I2ST2'},
{'label': 'B3', 'value': 'I3ST2'},
{'label': 'B4', 'value': 'I4ST2'},
{'label': 'B5', 'value': 'I5ST2'},
{'label': 'B6', 'value': 'I6ST2'}
],
values=['I1ST2'],
labelStyle = {'display': 'block'}
)
]
),
html.Div(
style={'width':'5%', 'height':'100%','float':'left'},
children=[
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'C1', 'value': 'I1MT'},
{'label': 'C2', 'value': 'I2MT'},
{'label': 'C3', 'value': 'I3MT'}
],
values=['I1MT'],
labelStyle = {'display': 'block'}
)
]
)
])
if __name__ == '__main__':
app.run_server(debug=True)
我们可以使用 style
选项设置每个破折号组件的样式,使用它我们可以自定义布局。
我是 Dash 的初学者,我从未用 html 编写过代码,所以我不确定这一切是如何工作的。
我一直在尝试将清单分成几列。
这是我的部分代码:
html.Div(
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'A1', 'value': 'I1ST1'},
{'label': 'A2', 'value': 'I2ST1'},
{'label': 'A3', 'value': 'I3ST1'},
{'label': 'A4', 'value': 'I4ST1'},
{'label': 'A5', 'value': 'I5ST1'},
{'label': 'A6', 'value': 'I6ST1'}
],
values='I1ST1',
labelStyle = {'display': 'block'}
),
),
html.Div(
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'B1', 'value': 'I1ST2'},
{'label': 'B2', 'value': 'I2ST2'},
{'label': 'B3', 'value': 'I3ST2'},
{'label': 'B4', 'value': 'I4ST2'},
{'label': 'B5', 'value': 'I5ST2'},
{'label': 'B6', 'value': 'I6ST2'}
],
values='I1ST2',
labelStyle = {'display': 'block'}
)
),
html.Div(
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'C1', 'value': 'I1MT'},
{'label': 'C2', 'value': 'I2MT'},
{'label': 'C3', 'value': 'I3MT'}
],
values='I1MT',
labelStyle = {'display': 'block'}
)
)
]
)
我目前得到这样的东西:
☒ A1
☐ A2
☐ A3
☐ A4
☐ A5
☐ A6
☒ B1
☐ B2
☐ B3
☐ B4
☐ B5
☐ B6
☒ C1
☐ C2
☐ C3
我想要的是这样的:
☒ A1 ☒ B1 ☒ C1
☐ A2 ☐ B2 ☐ C2
☐ A3 ☐ B3 ☐ C3
☐ A4 ☐ B4
☐ A5 ☐ B5
☐ A6 ☐ B6
我尝试在 labelStyle 函数中添加一些 CSS 函数(浮动、宽度),但其中 none 有效。
我这样做对吗?我该怎么办?
我们实现这一目标的一种方法如下,
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash(__name__)
app.layout = html.Div([
html.Div(
style={'width':'5%', 'height':'100%','float':'left'},
children=[
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'A1', 'value': 'I1ST1'},
{'label': 'A2', 'value': 'I2ST1'},
{'label': 'A3', 'value': 'I3ST1'},
{'label': 'A4', 'value': 'I4ST1'},
{'label': 'A5', 'value': 'I5ST1'},
{'label': 'A6', 'value': 'I6ST1'}
],
values=['I1ST1'],
labelStyle = {'display': 'block'}
),
]
),
html.Div(
style={'width':'5%', 'height':'100%','float':'left'},
children=[
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'B1', 'value': 'I1ST2'},
{'label': 'B2', 'value': 'I2ST2'},
{'label': 'B3', 'value': 'I3ST2'},
{'label': 'B4', 'value': 'I4ST2'},
{'label': 'B5', 'value': 'I5ST2'},
{'label': 'B6', 'value': 'I6ST2'}
],
values=['I1ST2'],
labelStyle = {'display': 'block'}
)
]
),
html.Div(
style={'width':'5%', 'height':'100%','float':'left'},
children=[
dcc.Checklist(className ='checkbox_1',
options=[
{'label': 'C1', 'value': 'I1MT'},
{'label': 'C2', 'value': 'I2MT'},
{'label': 'C3', 'value': 'I3MT'}
],
values=['I1MT'],
labelStyle = {'display': 'block'}
)
]
)
])
if __name__ == '__main__':
app.run_server(debug=True)
我们可以使用 style
选项设置每个破折号组件的样式,使用它我们可以自定义布局。