Dou*_*ank 3 javascript ipython jupyter
假设在IPython笔记本中创建了一个ipywidget,如下所示:
from ipywidgets import widgets
i = widgets.IntText()
Run Code Online (Sandbox Code Playgroud)
有没有办法从Javascript设置值?我怀疑我需要知道小部件的一些通讯ID。还是有更好的方法在Python中使用Javascript设置变量?
用例是我想将鼠标单击位置(通过Javascript获得)位置发送回Python。
感谢ipython gitter上的SylvainCorlay和jasongrout,他们得以通过以下方式与我交谈:
clicked = function (evt, x_model, y_model) {
var e = evt.srcElement.farthestViewportElement || evt.target;
var dim = e.getBoundingClientRect();
var x = evt.clientX - dim.left;
var y = evt.clientY - dim.top;
var manager = IPython.WidgetManager._managers[0];
var model_prom = manager.get_model(x_model);
model_prom.then(function(model) {
model.set('value', Math.round(x));
model.save_changes();
});
model_prom = manager.get_model(y_model);
model_prom.then(function(model) {
model.set('value', Math.round(y));
model.save_changes();
});
};
Run Code Online (Sandbox Code Playgroud)
在事件中调用onclick的地方,以及Python的x.model_id和y.model_id。
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |