将on_click方法添加到使用ipywidgets创建的按钮中

问题描述 投票:0回答:1

我正在使用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个按钮的仪表板:

enter image description here

问题是,由于所有按钮都被称为相同,因此如何处理按钮的每个on_click方法的策略是什么?这些按钮是否有一种“ id”?

想象一下,通过单击每个按钮,我想在线获取特定数据。如何进行?

谢谢。

python button onclick grid ipywidgets
1个回答
0
投票

尝试一下:

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
...

© www.soinside.com 2019 - 2024. All rights reserved.