使表列宽度相同

时间:2018-02-28 19:19:15

标签: jupyter-notebook ipywidgets

我正在尝试使用ipywidgets制作类似于桌子的东西。

是否可以使列宽相同?

1

也许有更好的方法来创建表?

以下是重现的完整代码:

table_style = {'description_width': '150px'}
table_layout = {'width': '300px'}

table_header_1_widget = Text(
                            value='header 1',
                            placeholder='',
                            description='',
                            disabled=True,
                            layout=table_layout,
                            style=table_style
                            )
table_header_2_widget = Text(
                            value='header 2',
                            placeholder='',
                            description='',
                            disabled=True,
                            layout=table_layout,
                            style=table_style
                            )
table_header_3_widget = Text(
                            value='header 3',
                            placeholder='',
                            description='',
                            disabled=True,
                            layout=table_layout,
                            style=table_style
                            )

row_1_1_widget = BoundedFloatText(
                                        value=70.0,
                                        min=30.0,
                                        max=300.0,
                                        step=1.0,
                                        description='row 1:',
                                        layout=table_layout,
                                        style=table_style,
                                     )
row_1_2_widget = BoundedFloatText(
                                        value=80.0,
                                        min=30.0,
                                        max=300.0,
                                        step=1.0,
                                        description='',
                                        layout=table_layout,
                                        style=table_style
                                     )
row_1_3_widget = BoundedFloatText(
                                        value=90.0,
                                        min=30.0,
                                        max=300.0,
                                        step=1.0,
                                        description='',
                                        layout=table_layout,
                                        style=table_style
                                     )
row_2_1_widget = BoundedFloatText(
                                    value=20.0,
                                    min=1.0,
                                    max=100.0,
                                    step=1.0,
                                    description='row 2:',
                                    layout=table_layout,
                                    style=table_style
                                 )
row_2_2_widget = BoundedFloatText(
                                    value=30.0,
                                    min=1.0,
                                    max=100.0,
                                    step=1.0,
                                    description='',
                                    layout=table_layout,
                                    style=table_style
                                 )
row_2_3_widget = BoundedFloatText(
                                    value=40.0,
                                    min=1.0,
                                    max=100.0,
                                    step=1.0,
                                    description='',
                                    layout=table_layout,
                                    style=table_style
                                 )

hbox1 = HBox([table_header_1_widget, table_header_2_widget, table_header_3_widget])
hbox2 = HBox([row_1_1_widget, row_1_2_widget, row_1_3_widget])
hbox3 = HBox([row_2_1_widget, row_2_2_widget, row_2_3_widget])
ui = VBox([hbox1, hbox2, hbox3])

def func(p1,p2,p3,p4,p5,p6):
    print(p1,p2,p3,p4,p5,p6)

w = interactive_output(func,
                       { 
                         "p1":row_1_1_widget,
                         "p2":row_1_2_widget,
                         "p3":row_1_3_widget,
                         "p4":row_2_1_widget,
                         "p5":row_2_2_widget,
                         "p6":row_2_3_widget,
                       })

display(ui, w)

1 个答案:

答案 0 :(得分:0)

我修好了,但也许有些尴尬:

2

table_style = {'description_width': 'initial'}
table_layout = {'width':'150px', 'min_width':'150px', 'height':'28px', 'min_height':'28px'}
row_layout = {'width':'200px', 'min_width':'200px'}

table_header_0_widget = Button(
    description='',
    disabled=True,
    button_style='',
    tooltip='',
    icon='',
    layout=row_layout,
    style=table_style
)

table_header_1_widget = Button( description='header 1',
                                disabled=True,
                                button_style='',
                                tooltip='',
                                icon='',
                                #layout=header_layout,
                                #style=table_style
                                layout=table_layout
                               )
table_header_2_widget = Button( description='header 2',
                                disabled=True,
                                button_style='',
                                tooltip='',
                                icon='',
                                #layout=header_layout,
                                #style=table_style
                                layout=table_layout
                               ) 
table_header_3_widget = Button( description='header 3',
                                disabled=True,
                                button_style='',
                                tooltip='',
                                icon='',
                                #layout=header_layout,
                                #style=table_style
                                layout=table_layout
                               )

row_1_0_widget = Button(
    description='row2 looooooooooooong:',
    disabled=True,
    button_style='',
    tooltip='',
    icon='',
    layout=row_layout,
    style=table_style
)
row_1_1_widget = BoundedFloatText(
                                    value=70.0,
                                    min=30.0,
                                    max=300.0,
                                    step=1.0,
                                    layout=table_layout,
                                    style=table_style,
                                 )
row_1_2_widget = BoundedFloatText(
                                    value=80.0,
                                    min=30.0,
                                    max=300.0,
                                    step=1.0,
                                    description='',
                                    layout=table_layout,
                                    style=table_style
                                 )
row_1_3_widget = BoundedFloatText(
                                    value=90.0,
                                    min=30.0,
                                    max=300.0,
                                    step=1.0,
                                    description='',
                                    layout=table_layout,
                                    style=table_style
                                 )
row_2_0_widget = Button(
    description='row3:',
    disabled=True,
    button_style='',
    tooltip='',
    icon='',
    layout=row_layout,
    style=table_style
)
row_2_1_widget = BoundedFloatText(
                                    value=20.0,
                                    min=1.0,
                                    max=100.0,
                                    step=1.0,
                                    layout=table_layout,
                                    style=table_style
                                 )
row_2_2_widget = BoundedFloatText(
                                    value=30.0,
                                    min=1.0,
                                    max=100.0,
                                    step=1.0,
                                    description='',
                                    layout=table_layout,
                                    style=table_style
                                 )
row_2_3_widget = BoundedFloatText(
                                    value=40.0,
                                    min=1.0,
                                    max=100.0,
                                    step=1.0,
                                    description='',
                                    layout=table_layout,
                                    style=table_style
                                 )

hbox1 = HBox([table_header_0_widget, table_header_1_widget, table_header_2_widget, table_header_3_widget])
hbox2 = HBox([row_1_0_widget, row_1_1_widget, row_1_2_widget, row_1_3_widget])
hbox3 = HBox([row_2_0_widget, row_2_1_widget, row_2_2_widget, row_2_3_widget])
ui = VBox([hbox1, hbox2, hbox3])

def func(p1,p2,p3,p4,p5,p6):
    print(p1,p2,p3,p4,p5,p6)

w = interactive_output(func,
                       { 
                         "p1":row_1_1_widget,
                         "p2":row_1_2_widget,
                         "p3":row_1_3_widget,
                         "p4":row_2_1_widget,
                         "p5":row_2_2_widget,
                         "p6":row_2_3_widget,
                       })

display(ui, w)