2017-02-02 6 views
3

Я хотел бы сделать экземпляр изображения в ноутбуке jupyter для ответа на события щелчка - как мы можем это сделать? Я также хочу иметь возможность идентифицировать изображение, которое было нажато. Это просто сделать с помощью кнопок, но не с изображениями.Как сделать и изображение с ipywidget кликабельным?

ответ

2

После игры вокруг с этим, единственный способ, которым я мог бы сделать это до сих пор с помощью некоторых JavaScript ... в коде Python, у меня есть что-то вроде:

from ipywidgets import Image 
from IPython.display import display, Javascript 
im = Image(value=open(filename, 'rb').read()) 
im.add_class('the_image_class') 

def on_image_click(): 
    #do something.... 
    return 

#Now, I wrote some javascript(jQuery) code like this... 
js = ''' $(".the_image_class").on("click", function(e){ 
      var kernel = IPython.notebook.kernel; 
      kernel.execute("on_image_click()"); 
      });''' 

#then, run the javascript... 
display(Javascript(js)) 

Который вид отсутствует точка полностью использует виджеты в python ... Есть ли лучший способ привязать функции python к событиям виджетов, без javascript?