如何使用来自 kivy 的 glumpy 或 vispy?
How can one use glumpy or vispy from kivy?
我很喜欢 glumpy (or the related vispy), a python framework for scientific visualization. Unfortunately it does not have much in the way of user-interface (buttons etc.) I am also a fan of kivy 以及它处理用户界面元素的方式。这两个框架似乎都有自己的绘图、window-创建等例程。任何人都可以指出我如何在同一个(桌面)应用程序中使用这两个工具的正确方向吗?
我对此进行了一些调查。我选择的方向是尝试为 Vispy 创建一个 Kivy window 后端,它将使用现有的 Kivy window 但将所有 Kivy 的事件(输入等)传递给 Vispy canvas -实际上,Window 后端通常会有一个 while True:
循环检查事件并绘制每一帧,我有一个 Kivy 时钟调度函数做同样的事情。我认为这种方法应该是可行的,而且可能相当简单,但我不确定在集成他们的事件循环时会出现什么问题。在 运行没时间之前,我的实验并没有取得太大进展。
也许你也可以反过来做,将 Kivy 的时钟滴答绑定到 Vispy 中的计时器,每帧 运行s。以正确的顺序使用 opengl 东西 运行 的重要性仍然会导致问题,但否则这也应该很容易,至少乍一看是这样。我没有尝试它,因为我更熟悉 Kivy 的内部结构,而且因为我的最终目标更像是一个包含 Vispy 可视化的 Kivy 应用程序,而不是相反。
将它们组合起来可能还有其他问题,比如可能是一般的 opengl 问题(我认为我遇到的问题是它们针对的 opengl 版本不匹配)或绘图顺序和位置问题 - 我正在研究这个想法我的想法是理想地以 Kivy 中的 VispyWidget 之类的东西结束,这会将 Vispy 的绘图限制在给定区域,但我没有做到那么远。不过,我很乐意看到它起作用,而且我认为它应该是可能的,但需要进行一些实验,并且可能需要对这两个项目做出贡献才能解决任何集成问题。
编辑:同样的情况很可能适用于 glumpy,但我还没有真正尝试过或查看它的代码。
我很喜欢 glumpy (or the related vispy), a python framework for scientific visualization. Unfortunately it does not have much in the way of user-interface (buttons etc.) I am also a fan of kivy 以及它处理用户界面元素的方式。这两个框架似乎都有自己的绘图、window-创建等例程。任何人都可以指出我如何在同一个(桌面)应用程序中使用这两个工具的正确方向吗?
我对此进行了一些调查。我选择的方向是尝试为 Vispy 创建一个 Kivy window 后端,它将使用现有的 Kivy window 但将所有 Kivy 的事件(输入等)传递给 Vispy canvas -实际上,Window 后端通常会有一个 while True:
循环检查事件并绘制每一帧,我有一个 Kivy 时钟调度函数做同样的事情。我认为这种方法应该是可行的,而且可能相当简单,但我不确定在集成他们的事件循环时会出现什么问题。在 运行没时间之前,我的实验并没有取得太大进展。
也许你也可以反过来做,将 Kivy 的时钟滴答绑定到 Vispy 中的计时器,每帧 运行s。以正确的顺序使用 opengl 东西 运行 的重要性仍然会导致问题,但否则这也应该很容易,至少乍一看是这样。我没有尝试它,因为我更熟悉 Kivy 的内部结构,而且因为我的最终目标更像是一个包含 Vispy 可视化的 Kivy 应用程序,而不是相反。
将它们组合起来可能还有其他问题,比如可能是一般的 opengl 问题(我认为我遇到的问题是它们针对的 opengl 版本不匹配)或绘图顺序和位置问题 - 我正在研究这个想法我的想法是理想地以 Kivy 中的 VispyWidget 之类的东西结束,这会将 Vispy 的绘图限制在给定区域,但我没有做到那么远。不过,我很乐意看到它起作用,而且我认为它应该是可能的,但需要进行一些实验,并且可能需要对这两个项目做出贡献才能解决任何集成问题。
编辑:同样的情况很可能适用于 glumpy,但我还没有真正尝试过或查看它的代码。