如何从Electron菜单触发Bokeh动作?

问题描述 投票:0回答:1

我想将Bokeh应用程序与Electron连接起来。 Electron窗口已经显示了用Python 3编写的散景应用程序的localhost:5006。现在我想使用电子的本机用户菜单来触发Bokeh应用程序的一些操作。有没有办法做到这一点?

python python-3.x electron bokeh rpc
1个回答
0
投票

我在this project中使用了一些变通方法来实现这一点。具体来说,我发送信号到iframe运行一些js事件并触发python方法。将来我希望bokeh能够允许一些RPC调用。获取功能的关键文件:

  1. 我在iframe上加载bokeh以便从电子控制整个应用程序。
  2. 我用this method将信号发送到iframe。 document.getElementById('bokeh_iframe').contentWindow.postMessage({ "signal": "call-python-promise", "message_data": message } , '*'); // to index.html, the click on the button is run there as well 一个电话示例here。您可以将这些调用放在电子菜单项中(在ipc渲染器侧)。 var call_params = { 'object': 'bokeh.loader', 'method': 'init_bokeh', 'args': { 'ts_state': $('body').data('ts_state'), } } tools.call_promise(call_params).then((result) => { self.run_on_ready(); });
  3. This object创建了触发js回调的机制。用按钮,输入文本和绘图构造的小散景形式。
  4. Here我填充虚拟文本对象以选择要调用的方法(对象和方法)。然后我用button.click()触发python方法(与按钮相关的回调)
  5. object and method是在python方面接收和计算的。最后,散景方法通过反向过程返回电子的答案,因为我暴露了here

如你所见,这非常麻烦。如果您找到更好的方法,请告诉我。将来会创建一些调用python方法的方法,所有这些都会更简单。

注意:您可能需要检查何时加载散景图以重定向电子。检查这个question and answer

© www.soinside.com 2019 - 2024. All rights reserved.