我正在构建一个图形用户界面(pyqt或pyside)来为用户轻松创建复杂的图形(例如plotly),目前为止一切顺利,我运行数据处理并生成plotly图形,这些图形被导出为html并由QwebEngineView
读取,我甚至创建了一个qt小部件供用户编辑布局(见下图)。
这样做的问题是以下过程中的长延迟(几秒钟):更新布局-〉导出到一个临时的html文件→打开并在图形用户界面上呈现该文件。我想使一个更好的图形用户界面体验与布局编辑。
在这个伟大的Jon Mease talk之后,我发现我绘制的图形可以用同样伟大的ipywidgets真实的更新,但只能在Jupyter笔记本/实验室环境中使用,也就是说,将小部件+图形导出到一个html文件中会呈现所有元素,但由于小部件缺少python后端(在独立的html文件中),它们不会与图形的布局交互。
然而,我的应用程序是在Python进程上运行的,所以我感觉这应该是一个可以解决的问题。
Qtconsole不会呈现ipywidget,因此我无法使用它在GUI中显示我的图形。
Voila为Jupyter笔记本提供了交互式小部件,但我不确定我是否可以访问它并将其合并到GUI中。它说它可以作为“独立的tornado应用程序”或“笔记本或jupyter_server的服务器扩展”工作。
我知道这可能没有最终的解决方案,但我将感谢任何建议,如何处理这个问题!谢谢!
1条答案
按热度按时间edqdpe6u1#
我最终为这个问题创造了一个解决方案:QtVoila
它基本上是一个扩展的
QWebEngineView
,用于管理和呈现一个Voila进程,并具有一些额外的功能。这里有一篇博客文章对此进行了解释:
https://www.taufferconsulting.com/portfolio/qtvoila