Python 具有IPyWidget和交互式图形的Pyqt5/Pyside应用程序

Python 具有IPyWidget和交互式图形的Pyqt5/Pyside应用程序,python,pyqt5,jupyter,ipywidgets,plotly-python,Python,Pyqt5,Jupyter,Ipywidgets,Plotly Python,我正在构建一个GUI(pyqt或pyside),以便为用户轻松创建复杂图形(例如,使用plotly)。 到目前为止还不错,我运行了数据处理并生成了绘图图形,这些图形以html格式导出,并由QwebEngineView读取。我甚至创建了一个qt小部件,供用户编辑布局(见下图) 这方面的问题是在以下过程中存在长延迟(几秒钟): 更新布局->导出为临时html文件→ 在GUI上打开并呈现文件。 我希望通过布局编辑获得更好的GUI体验 在这之后,我发现我的绘图仪图形可以使用同样伟大的工具进行实时更新,

我正在构建一个GUI(pyqt或pyside),以便为用户轻松创建复杂图形(例如,使用plotly)。 到目前为止还不错,我运行了数据处理并生成了绘图图形,这些图形以html格式导出,并由
QwebEngineView
读取。我甚至创建了一个qt小部件,供用户编辑布局(见下图)

这方面的问题是在以下过程中存在长延迟(几秒钟): 更新布局->导出为临时html文件→ 在GUI上打开并呈现文件。 我希望通过布局编辑获得更好的GUI体验

在这之后,我发现我的绘图仪图形可以使用同样伟大的工具进行实时更新,但只能在Jupyter笔记本电脑/实验室环境中进行更新。也就是说,将widgets+图形导出到html文件会呈现所有元素,但是由于widgets(在独立的html文件中)缺少python后端,因此它们不会与图形的布局交互

然而,我的应用程序运行在python进程上,所以我觉得这应该是一个可以解决的问题

不会呈现IPyWidget,因此我无法使用它在GUI中显示我的图形

使用交互式小部件呈现Jupyter笔记本,但我不确定是否可以访问它并将其合并到GUI中。它说,它既可以作为“独立的tornado应用程序”,也可以作为“笔记本或jupyter_服务器的服务器扩展”


我知道这可能没有最终的解决办法,但我希望能就如何解决这个问题提出任何建议!谢谢

我最终为这个问题创建了一个解决方案:

它基本上是一个扩展的
QWebEngineView
,它管理并呈现一个Voila进程,并具有一些额外的功能

下面是一篇解释其实现的博客帖子: