2

我是glumpy(或相关的vispy)的粉丝,这是一个用于科学可视化的 python 框架。不幸的是,它没有太多的用户界面(按钮等)。我也是kivy以及它如何处理用户界面元素的粉丝。这两个框架似乎都有自己的绘图、窗口创建等例程。谁能指出我如何在同一个(桌面)应用程序中使用这两个工具的正确方向?

4

1 回答 1

2

我对此进行了一些研究。我选择的方向是尝试为 Vispy 创建一个 Kivy 窗口后端,它将使用现有的 Kivy 窗口,但将所有 Kivy 的事件(输入等)传递到 Vispy 画布——实际上,Window 后端通常会进行while True:循环检查事件和绘制每一帧,我有一个 Kivy 时钟计划函数做同样的事情。我认为这种方法应该是可能的,而且可能相当容易,但我不确定在集成他们的事件循环时会出现什么问题。在没时间做之前,我的实验并没有走得太远。

也许你也可以反过来做,将 Kivy 的时钟滴答绑定到 Vispy 中每帧运行的计时器。以正确的顺序运行 opengl 东西的重要性仍然可能导致问题,但否则这也应该很容易,至少乍一看。我没有尝试它,因为我更熟悉 Kivy 的内部结构,并且因为我的最终目标更多是包含 Vispy 可视化的 Kivy 应用程序,而不是相反。

将它们组合起来可能还有其他问题,比如可能是一般的 opengl 问题(我认为我遇到的一个问题是他们所针对的 opengl 的版本不匹配)或绘图顺序和位置问题 - 我正在考虑以理想方式结束的想法使用 Kivy 中的 VispyWidget 之类的东西,它会将 Vispy 的绘图限制在给定区域,但我没有走那么远。不过,我很想看到它起作用,而且我认为它应该是可能的,但需要一些实验,并且可能需要对这两个项目做出贡献以解决任何集成问题。

编辑:这很可能适用于 glumpy,但我还没有真正尝试过或查看它的代码。

于 2015-11-24T14:40:36.403 回答