ipywidgets:最小化按钮宽度以仅显示图标?

ipywidgets: minimizing button width to just show icon?

我有 VBoxHBox 个实例,每个 HBox 包含一个 Text 和一个 Button 个实例:

这里是代码是我用的代码:

        style = {'description_width': '125px', 'width': '90%'}
        for rest_id, prompt_text in fields.items():
            self.widgets[rest_id] = ipy.Text(
                    description=prompt_text,
                    disabled=False,
                    layout = ipy.Layout(width='99%'),
                    style=style)
            self.widgets[f"{rest_id}_button"] = ipy.Button(icon='cloud-upload')
            vbox_widgets.append(ipy.HBox(children=[self.widgets[rest_id], self.widgets[f"{rest_id}_button"]]))   
        self.widgets['meta_vbox'] = ipy.VBox(children=vbox_widgets)

有没有办法确定 HBox 中每个项目获得的百分比?或者将 HBox 元素固定为固定像素数?我希望 Button 个实例足够大以显示图标,仅此而已。

感谢

如果您为按钮指定特定宽度(或专用 Layout),则其余对象应调整以填充 space,这是否符合您的要求?:

import ipywidgets as ipy
fields = {'a': '1', 'b': '2'}
widgets = {}
vbox_widgets = []
style = {'description_width': '125px', 'width': '90%'}
button_layout = ipy.Layout(width='40px')
for rest_id, prompt_text in fields.items():
    widgets[rest_id] = ipy.Text(
            description=prompt_text,
            disabled=False,
            layout = ipy.Layout(width='99%'),
            style=style)
    widgets[f"{rest_id}_button"] = ipy.Button(icon='cloud-upload', layout=button_layout)
    vbox_widgets.append(ipy.HBox(children=[widgets[rest_id], widgets[f"{rest_id}_button"]]))   
ipy.VBox(children=vbox_widgets, layout=ipy.Layout(width='400px'))

对于更复杂的布局,请查看 GridBox class:https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Styling.html#The-Grid-layout

对于以后的问题,如果您包括所有导入、模拟字典等,就会容易得多。如果我可以复制并粘贴您的代码并运行,则更容易给出答复。