私はpythonとpythonノートブックにかなり慣れていません。画像のリストから画像を表示し、クリック可能な ipywidget ボタンからその画像を選択する 4 つの選択肢をユーザーに提供する Jupyter ノートブックを作成しようとしています。ユーザーが選択肢をクリックしたら、画像を新しい画像に置き換え、ボタンに 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()
どうもありがとう!