Toga est la boîte à outils d'interface graphique native Python et OS de BeeWare.
Pourquoi Toga ?
Toga n'est pas la première boîte à outils de widgets au monde - il existe des dizaines d'autres options. options. Alors pourquoi en créer une nouvelle ?
Widgets natifs - pas de thèmes
Toga utilise des widgets natifs du système, et non des thèmes. Lorsque vous voyez une application Toga fonctionne, elle ne se contente pas de ressembler à une application native - c'est une application native. L'application d'un thème inspiré du système d'exploitation par-dessus un ensemble de widgets génériques est un moyen facile pour un développeur d'obtenir un résultat similaire à celui d'une application native. générique est un moyen facile pour un développeur d'atteindre un objectif multiplateforme mais c'est l'utilisateur final qui se retrouve dans le pétrin.
Il est facile de repérer les applications qui ont été créées à l'aide d'ensembles de widgets thématiques - ce sont celles qui ne se comportent pas tout à fait comme les autres. ce sont celles qui ne se comportent pas tout à fait comme n'importe quelle autre application. Les widgets n'ont pas l'air tout à fait corrects, ou il y a une barre de menu sur une fenêtre dans une application macOS. ou une barre de menu sur une fenêtre dans une application macOS. Les thèmes peuvent s'en approcher, mais il y a toujours des signes révélateurs.
En outre, les widgets natifs sont toujours plus rapides qu'un widget générique. à thème. Après tout, vous utilisez les capacités du système natif qui ont été réglées et optimisées, et non un moteur de dessin qui a été superposé. optimisées, et non un moteur de dessin superposé à un widget générique. un widget générique. Ils héritent également de toutes les possibilités d'accessibilité de la plateforme native, telles que la prise en charge des de la plateforme native, comme la prise en charge des lecteurs d'écran et des les tailles de police adaptatives.
Abréger les grands concepts
Il ne suffit pas de ressembler à une application native. se sentir comme une application native.
Une option "Quitter" dans le menu "Fichier" est logique si vous écrivez une application Windows. Windows - mais elle est complètement déplacée si vous êtes sous OS X - l'option "Quitter" devrait se trouver dans le menu de l'application. Quitter devrait se trouver dans le menu de l'application.
Et d'ailleurs, pourquoi le développeur a-t-il dû coder l'emplacement d'une option Quit de toute façon ? Toutes les applications du monde doivent avoir une option de sortie, alors pourquoi la boîte à outils des widgets ne fournit-elle pas une option de sortie préinstallée, hors de la boîte à outils ? pourquoi la boîte à outils des widgets ne fournit-elle pas une option de sortie préinstallée la boîte ?
Bien que Toga utilise 100% des widgets natifs du système, cela ne signifie pas que Toga est une simple enveloppe autour des widgets du système. Dans la mesure du possible, Toga tente d'abstraire les concepts plus larges qui sous-tendent la construction d'applications GUI et de construire une API pour cela. Ainsi, chaque application Toga dispose de l'ensemble de base d'options de menu que vous êtes en droit d'attendre de toute application - Quitter, A propos, etc. à l'endroit où l'on s'attend à les trouver dans une application native.
Lorsqu'il s'agit de widgets, l'abstraction est parfois simple - après tout, un bouton est un bouton, quelle que soit la plateforme sur laquelle vous travaillez. après tout, un bouton est un bouton, quelle que soit la plateforme sur laquelle on se trouve. Mais d'autres widgets ne sont pas toujours exposés de manière aussi littérale. Ce que l'API Toga vise à est un ensemble de mécanismes permettant d'atteindre les objectifs de l'interface utilisateur, et non un ensemble de de widgets.
Python native
La plupart des boîtes à outils pour widgets commencent leur vie comme une couche C ou C++, qui est ensuite enveloppée par d'autres langages. En conséquence, vous vous retrouvez avec des API qui ont le goût de C ou C++.
Toga a été conçu dès le départ pour être une boîte à outils de widgets en Python. de Python. Cela signifie que l'API est capable d'exploiter les caractéristiques du langage comme les générateurs et les gestionnaires de contexte d'une manière qu'un wrapper autour d'une ne pourrait pas le faire (du moins, pas facilement).
Toga fonctionne avec Python 3. Il ne fonctionne pas avec Python 2.
pip install et rien de plus
Toga a pour objectif de n'être qu'à une installation de pip de l'utiliser. Il ne nécessite la compilation d'extensions C. Il n'est pas nécessaire d'installer une bibliothèque de support binaire. Il n'est pas nécessaire de modifier les chemins d'accès au système et les variables d'environnement. variables d'environnement. Il suffit de l'installer, de l'importer et de commencer à écrire (ou à exécuter) du code. d'écrire (ou d'exécuter) du code.
Adopter la mobilité
Il y a 10 ans, être une boîte à outils multiplateforme pour widgets signifiait être disponible pour Windows, OS X et Linux. Aujourd'hui, l'informatique mobile est beaucoup plus importante. Mais malgré cela, il n'y a pas beaucoup de bonnes options pour la programmation Python sur les plateformes mobiles. pour la programmation Python sur les plates-formes mobiles, et le codage mobile multiplateforme est encore difficile à réaliser. Toga vise à remédier à cela.
Comment aider
Pourquoi est-ce nommé "Toga"?
Quand on est à Rome, on fait comme les Romains. Et que porte un Romain ? Une toge !