我对 python 和 python 笔记本很陌生。我正在尝试创建一个 Jupyter 笔记本,它将显示图像列表中的图像,并为用户提供 4 个选项来选择可点击的 ipywidget 按钮中的图像。一旦用户单击他们的选择,我想用新图像替换图像并用 4 个新选择重新填充按钮。
我知道如何使用 button.close() 清除图像输出并关闭按钮小部件,但我似乎无法弄清楚如何使用新选择重绘按钮。一旦我关闭了容器,我就无法弄清楚如何循环回到顶部,因为一旦做出选择,我就会被困在 on_button_clicked 函数中。这是我到目前为止所拥有的,尽管我知道它还没有在工作附近,而且它可能在方法上很遥远。注意我不需要使用 ipywidgets,但从可点击按钮的意义上来说,它似乎是一个不错的选择:
x = ['tree.jpg','house.jpg','car.jpg','door.jpg','train.jpg','moon.jpg']
choices = random.sample(x, 4)
correct = random.choice(choices)
display(Image(correct))
time.sleep(3)
button1 = widgets.Button(description = x[0])
button2 = widgets.Button(description = x[1])
button3 = widgets.Button(description = x[2])
button4 = widgets.Button(description = x[3])
container = widgets.HBox(children=[button1,button2,button3,button4])
display(container)
button1.on_click(on_button1_clicked)
button2.on_click(on_button2_clicked)
button3.on_click(on_button3_clicked)
button4.on_click(on_button4_clicked)
def on_button1_clicked(b):
# [insert code to record choice]
container.close()
clear_output()
def on_button2_clicked(b):
# [insert code to record choice]
container.close()
clear_output()
def on_button3_clicked(b):
# [insert code to record choice]
container.close()
clear_output()
def on_button4_clicked(b):
# [insert code to record choice]
container.close()
clear_output()
多谢!