Toga ist BeeWare's Python natives, OS natives GUI Toolkit.
Warum Toga?
Toga ist nicht das erste Widget-Toolkit der Welt - es gibt Dutzende von anderen Optionen. Warum also ein neues bauen?
Native Widgets - keine Themen
Toga verwendet systemeigene Widgets, keine Themes. Wenn Sie eine Toga-App sehen läuft, sieht sie nicht nur aus wie eine native Anwendung - sie ist eine native Anwendung. Das Anwenden eines vom Betriebssystem inspirierten Themes über einem generischen Widget-Set ist ein einfacher Weg für einen Entwickler, ein plattformübergreifendes Ziel zu erreichen plattformübergreifendes Ziel zu erreichen, aber es lässt den Endbenutzer mit dem Chaos zurück.
Es ist einfach, Anwendungen zu erkennen, die mit thematischen Widgetsätzen erstellt wurden - Das sind diejenigen, die sich nicht wie jede andere App verhalten. Widgets sehen nicht ganz richtig aus, oder es gibt eine Menüleiste auf einem Fenster in einer macOS App. Themes können dem ziemlich nahe kommen - aber es gibt immer verräterische Anzeichen.
Außerdem sind native Widgets immer schneller als ein themenbezogenes generisches Widget. Schließlich verwenden Sie native Systemfunktionen, die und optimiert wurde, und nicht eine Zeichen-Engine, die auf ein generisches Widget einem generischen Widget. Außerdem erben sie alle Funktionen der nativen Plattform der nativen Plattform, wie z. B. Unterstützung für Bildschirmleser und anpassbare Schriftgrößen.
Zusammenfassung der allgemeinen Konzepte
Es reicht jedoch nicht aus, nur wie eine native App auszusehen - Sie müssen sich auch Sie müssen sich auch wie eine native App anfühlen.
Eine "Beenden"-Option unter einem "Datei"-Menü ist sinnvoll, wenn Sie eine Windows-Anwendung schreiben, aber unter OS X ist sie völlig fehl am Platz - die Beenden"-Option sollte sich unter dem Anwendungsmenü befinden.
Und außerdem - warum musste der Entwickler die Position einer Beenden Option programmieren? Jede App auf der Welt muss eine Beenden-Option haben, also warum warum bietet das Widget-Toolkit keine vorinstallierte Beenden-Option, die der Box?
Obwohl Toga 100% systemeigene Widgets verwendet, bedeutet das nicht, dass Toga nur ein Wrapper um System-Widgets herum ist. Wo immer möglich, versucht Toga abstrahieren, die der Konstruktion von GUI-Anwendungen zu Grunde liegen Anwendungen zugrunde liegen, zu abstrahieren und eine API dafür zu entwickeln. Also - jede Toga-Anwendung hat den grundlegenden Satz Menüoptionen, die Sie von jeder Anwendung erwarten - Beenden, Über, und so weiter - alle an den Stellen, an denen man sie in einer nativen App erwarten würde.
Wenn es um Widgets geht, ist die Abstraktion manchmal einfach - schließlich schließlich ist eine Schaltfläche eine Schaltfläche, egal auf welcher Plattform man sich befindet. Aber andere Widgets sind vielleicht nicht so wörtlich zu verstehen. Das Ziel der Toga-API ist es ist ein Satz von Mechanismen zur Erreichung von UI-Zielen, nicht ein wörtlicher Widgetsatz.
Native Python
Die meisten Widget-Toolkits beginnen ihr Leben als C- oder C++-Schicht, die dann von anderen Sprachen ummantelt wird. Das Ergebnis sind APIs, die nach C oder C++ wie C oder C++.
Toga wurde von Grund auf als natives Widget-Toolkit in Python entwickelt. Toolkit zu sein. Das bedeutet, dass die API in der Lage ist, Funktionen auf Sprachebene zu nutzen wie Generatoren und Kontextmanager in einer Weise zu nutzen, die ein Wrapper um eine C Bibliothek nicht in der Lage wäre (zumindest nicht ohne weiteres).
Toga läuft auf Python 3. Es läuft nicht unter Python 2.
pip install und nichts weiter
Toga zielt darauf ab, nicht mehr als eine Pip-Installation von der Benutzung entfernt zu sein. Es erfordert nicht erfordert keine Kompilierung von C-Erweiterungen. Es besteht keine Notwendigkeit, eine binäre Unterstützungsbibliothek zu installieren. Es besteht keine Notwendigkeit, Systempfade und Umgebungsvariablen ändern. Installieren Sie sie einfach, importieren Sie sie, und beginnen Sie mit dem Schreiben (oder Code zu schreiben (oder auszuführen).
Umfassen Sie das Handy
Vor 10 Jahren bedeutete ein plattformübergreifendes Widget-Toolkit, dass es für Windows, OS X und Linux verfügbar zu sein. Heutzutage ist das mobile Computing viel wichtiger. Aber trotzdem gibt es nicht viele gute Optionen für die Python-Programmierung auf mobilen Plattformen, und plattformübergreifende mobile plattformübergreifende Programmierung ist immer noch schwer zu fassen. Toga zielt darauf ab, dies zu korrigieren.
How to help
So, why is it called "Toga"?
Wenn man in Rom ist, tut man, was die Römer tun. Und was trägt ein Römer? Eine Toga!