8

我知道在 Python 中构建跨平台的唯一方法是 Kivy,但我最近听说了 Beeware 项目和这个名为 Toga 的工具。据我所知,它仍处于早期阶段,很多人也不熟悉它,但网站上有一些基本教程。它看起来很有希望,但我不知道它的未来以及如果我开始研究它可能面临的问题,因为它现在可能有很多错误。我在文档上读到 Toga 可以让你构建原生跨平台应用程序,Kivy 应用程序不是原生的吗?它们是否像混合应用程序一样,就像您在 Phonegap 上构建的应用程序一样?谢谢

4

1 回答 1

12

Toga 通过将 Toga api 映射到不同系统上的本机平台小部件来实现其 gui。这意味着这些应用程序将自动看起来和行为类似于该系统中的其他“本机”应用程序。相比之下,Kivy 使用 opengl 进行绘图,使用自己的小部件工具包。这意味着默认情况下,它在所有不同平台上的外观和行为都完全相同。您可以对其进行自定义,但实际上很难获得真正像另一个框架一样工作的东西。

两种方法都有优点和缺点。Kivy 非常灵活且可移植,因为您几乎可以在任何地方使用 opengl,而更难的部分可能是编译 Kivy 和 Python 本身。另一方面,Toga 的方法是获得真正像本机应用程序一样的东西的唯一方法,并且还可能回避一些 Kivy 问题,例如在 Android 上启动相对较慢。也就是说,与 Kivy 的绘图 API 相比,我不确定是否需要显式地包装不同的小部件意味着它可能不太灵活,而 Kivy 的绘图 API 基本上可以在没有特殊平台支持的情况下实现任何东西。

于 2017-08-29T21:53:51.653 回答