如何将一组Button对象链接到图像输出以形成图像幻灯片显示?

时间:2019-07-12 13:01:19

标签: jupyter-notebook ipywidgets

我想利用ipywidgets来构建一个简单的数据输入应用程序。为此,我开始利用Button中定义的ipywidgets类。预期的结果是使图像查看器具有用于访问下一个图像和上一个图像的按钮。

我搜索了文档,但无法如上所述将图像链接到按钮。

btn = widgets.Button(layout=Layout(width='auto', height='auto'))
prev_image = widgets.Button(layout=Layout(width='auto', height='auto'),
                            description='Prev',
                            icon='backward')
next_image = widgets.Button(layout=Layout(width='auto', height='auto'),
                            description='Next',
                            icon='forward')

out = widgets.Output()
list_of_images = os.listdir('images/')

def on_button_clicked(_):
    global list_of_images
    # "linking function with output"
    with out:
        # what happens when we press the button
        clear_output()
        print('Something happens!')


# linking button and function together using a button's method
prev_image.on_click(on_button_clicked)

def show_images(file=os.listdir(fdir):
    display(Image(fdir + file))

img = interactive(show_images) # store it as an interactive widget


grid = GridspecLayout(2, 2)
grid[0, :] = img
grid[1, 0] = prev_image
grid[1, 1] = next_image
grid #display the grid

在这里,我猜想使用interactive()方法可能是由于使其不兼容而引起的。但老实说,我不知道该怎么做。我想我可以利用show_images()来将按钮作为参数传递。但是,我不确定如何前进。

我希望输出像this一样出现,但是按钮位于图像下方,而不是使用下拉菜单遍历图像,我想使用prev_image和{ {1}}遍历图像。

0 个答案:

没有答案