Python中跨平台的Kivy和Toga(Beeware项目)之间的区别

时间:2017-08-29 17:48:42

标签: python kivy

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

1 个答案:

答案 0 :(得分:9)

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

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