【发布时间】:2022-06-10 21:29:44
【问题描述】:
我正在尝试基于 Excel 电子表格创建输入表单。 我使用电子表格创建一个数据框(其中列出了 30 个“产品”) 我需要为列表中的每个产品创建一系列输入框。 目前我这样做的效率非常低:
product_1 = (ipw.Dropdown(options=barrier_list['Product Name'],
value = barrier_list['Product Name'][0],
description= barrier_list['ISIN'][0],
disabled=False,
layout = {'width':'350px'}))
product_1.style.description_width = 'initial'
units_1 = (ipw.IntText(value=for_table['Units'][0],
description='Units:',
disabled=False,
layout = {'width':'200px'}
))
price_1 = (ipw.FloatText(value=for_table['Price'][0],
description='Price:',
disabled=False,
layout = {'width':'200px'}
))
value_1 = (ipw.FloatText(value=0,
description='Value:',
disabled=False,
layout = {'width':'200px'}
))
HBox_1 = ipw.HBox([product_1,units_1,price_1, value_1])
这正是我需要的输入表的一行。要执行下一行,我再次复制此确切代码并将所有 [0] 更改为 [1]。这持续了 30 倍。
我知道这是一种糟糕的方法,但我不知道如何使用循环来创建 30 行(每个产品 1 行)输入框。
【问题讨论】:
-
不是解决方案,只是一个指针。您可能需要遍历列,然后根据相关列的 dtype 创建适当的小部件,然后随时追加到列表中。
标签: python loops ipywidgets