我正在使用ipywidgets创建仪表板。
我使用循环创建了一堆按钮:
from ipywidgets import GridspecLayout
grid = GridspecLayout(4, 3)
def create_expanded_button(description, button_style):
return Button(description=description, button_style=button_style, layout=Layout(height='auto', width='auto'))
for i in range(4):
for j in range(3):
grid[i, j] = create_expanded_button('Button {} - {}'.format(i, j), 'warning')
grid
这是文档中的代码。使用这样的代码,您可以创建带有16个按钮的仪表板:
问题是,由于所有按钮都被称为相同,因此如何处理按钮的每个on_click方法的策略是什么?这些按钮是否有一种“ id”?
想象一下,通过单击每个按钮,我想在线获取特定数据。如何进行?
谢谢。
尝试一下:
def on_btn_click(btn):
# do something
...
grid[0,0].on_click(on_btn_click) # Button 0-0
grid[0,1].on_click(on_btn_click) # Button 0-1
...