我知道在Python中構建跨平臺的唯一方法是Kivy,但我最近聽說過Beeware項目和此工具稱爲Toga。儘管我知道它仍處於早期階段,但很多人並不熟悉它,但網站上有幾個基本教程。它看起來非常有希望,但是我不知道它的未來以及如果我開始研究它可能面臨的問題,因爲它現在可能有很多錯誤。我閱讀了Toga允許您構建本機跨平臺應用程序的文檔,是否Kivy應用程序不是本機應用程序?他們是否喜歡Hybrid應用程序,就像您在Phonegap上構建的應用程序一樣?謝謝Python中的跨平臺的Kivy和Toga(Beeware項目)之間的區別
2
A
回答
5
Toga通過將Toga API映射到不同系統上的本機平臺小部件來實現其GUI。這意味着這些應用程序會自動查看和運行來自該系統的其他「原生」應用程序。相比之下,Kivy使用opengl進行繪圖,使用自己的小工具工具包。這意味着,默認情況下,它在所有不同的平臺上的外觀和行爲完全相同。你可以自定義它,但是在實踐中很難獲得真正像另一個框架那樣行事的東西。
兩種方法都有優點和缺點。 Kivy非常靈活和便攜,因爲你可以在任何地方使用opengl,而較難的部分可能是編譯Kivy和Python本身。另一方面,Toga的方法是獲得真正像本機應用一樣的東西的唯一方式,並且可能會迴避一些Kivy問題,例如Android上相對較慢的啓動。也就是說,我不確定是否需要明確包裝不同的小部件意味着它可能不那麼靈活,與Kivy的繪圖API相比,基本上可以實現任何功能,而無需特殊的平臺支持。
相關問題
- 1. Netbeans平臺和OSGI之間的區別
- 2. Xamarin android項目和Xamarin跨平臺項目有什麼區別?
- 3. Xamrin android,Xamrin iOS和Xamrin跨平臺項目的區別
- 4. SDK,SDK平臺和SDK平臺工具之間的區別
- 5. python中的[]和[,,]之間的區別
- 6. Python中cStringIO.StringIO.write和String.StringIO.write之間的區別
- 7. Python中dir()和locals()之間的區別?
- 8. Skript和控制檯之間的區別
- 9. 平臺無關和跨平臺有什麼區別?
- 10. Windows應用程序平臺和目標平臺的區別
- 11. 所有項目和子項目之間的區別
- 12. Sling內容項目和Sling捆綁項目之間的區別
- 13. C#測試項目和C#類庫之間的區別項目
- 14. Xamarin跨平臺項目
- 15. 跨平臺項目構建
- 16. 管理Github上的跨平臺項目
- 17. MVVMCross爲新的跨平臺項目?
- 18. 使用cmake的跨平臺Qt5項目
- 19. 小型Haskell項目的跨平臺makefile?
- 20. 組織跨平臺的C/C++項目
- 21. android sha224和python之間的區別sha224
- 22. Python - os.access和os.path.exists之間的區別?
- 23. python:!=和<>之間的區別?
- 24. Python - docopt和argparse之間的區別
- 25. ruby和python之間的語法區別?
- 26. basetring和types.StringType之間的python區別?
- 27. python pygir-ctypes和gi.repository之間的區別
- 28. memcache和python字典之間的區別
- 29. randn和普通Python之間的區別
- 30. Python 3.5 - '//'和'int()'之間的區別
感謝您的回答。你用過Toga嗎?編譯過程是否更簡單? –
toga-android項目似乎由作者在GitHub上歸檔。這是否意味着它已被放棄,並且Android不再是Toga的受支持目標? – akaihola
不,我認爲toga-android只是爲Android構建的一種特定方式,它已經通過voc轉換爲Java。 – inclement