Application mobile: Les 7 meilleurs cadres d’interface graphique Python pour 2017

pyGUI - l'un des 7 meilleurs GUI Python pour 2017

En tant que développeur Python, vous souhaiterez tôt ou tard écrire une application avec une interface utilisateur graphique. Heureusement, il existe de nombreuses options d’interface graphique Python: le wiki Python sur la programmation de l’interface graphique répertorie plus de 30 frameworks multiplateformes, ainsi que Pyjamas, un outil de développement Web multi-navigateur basé sur un port de Google Web Toolkit. (Cela s’ajoute à tous les autres réglages que vous pouvez apporter pour optimiser votre code Python.)

Comment choisir entre toutes ces options pour l’interface graphique Python? J’ai commencé par le restreindre à celles qui comprenaient les trois plates-formes (Windows, Mac et Linux) et, si possible, Python 3. Après ce filtrage, j’ai trouvé quatre boîtes à outils (Gtk, Qt, Tk et wxWidgets) et sept cadres (Kivy, PyQt, gui2Py, libavg, wxPython, Pyforms et PyGOBjects). Voici pourquoi je les aime.

Kivy

L’un des projets les plus intéressants, le Kivy sous licence libérale MIT est basé sur OpenGL ES 2 et inclut le multi-touch natif pour chaque plate-forme et Android / iOS. Il s’agit d’un framework événementiel basé sur une boucle principale, et est donc très adapté au développement de jeux. Votre application ajoute des rappels depuis la boucle principale à une fréquence planifiée ou par un déclencheur unique. Le framework Kivy est très puissant pour tout gérer, des widgets à l’animation, et comprend son propre langage pour décrire l’interface utilisateur et les interactions.

Si vous souhaitez créer des applications graphiques multiplateformes ou si vous avez simplement besoin d’une interface graphique multiplateforme très puissante, Kivy est fortement recommandé.

Pyforms

À seulement deux ans (ce qui en fait l’un des cadres les plus récents), Pyforms est un cadre multi-environnement Python 2.7 / 3.x pour le développement d’applications GUI. Il est modulaire et encourage la réutilisation du code avec un minimum d’effort.

Basé sur PyQt, OpenGL et d’autres bibliothèques, il fournit un ensemble assez complet de 22 contrôles, tous basés sur un objet ControlBase; il comprend également un lecteur vidéo, un navigateur Web et OpenGL. Lisez la documentation en ligne de Pyforms pour vous en faire une idée.

PyGObject (alias PyGi)

PyGObject est un module qui vous permet d’écrire des applications Python pour le projet GNOME ou une application Python utilisant GTK +. Il fournit des liaisons à GObject, une bibliothèque multiplateforme C qui propose des types communs et une classe de base à une grande base de code et a été utilisée dans de nombreux projets depuis 2002; par exemple, dans le manipulateur d’images GIMP, pour lequel GTK + a été développé.

GTK + est une boîte à outils de widget multiplateforme logicielle gratuite complète qui offre une capacité d’interface graphique dans de nombreuses applications Linux et Windows / Mac OSX.

PyQt

Qt est un framework multiplateforme multi-licences écrit en C ++. Si votre application est complètement open source, vous pouvez utiliser Qt gratuitement sous la licence communautaire; sinon vous aurez besoin d’une licence commerciale. Qt existe depuis longtemps et appartient à Nokia depuis un certain temps; c’est une bibliothèque très complète d’outils et d’API, largement utilisée dans de nombreuses industries, et couvre de nombreuses plates-formes, y compris les mobiles. Si un gadget tel qu’un SatNav possède une interface graphique, il y a de fortes chances qu’il soit basé sur Qt.

PyGUI

Comparé à Kivy et PyQt, PyGUI est considérablement plus simple et juste pour les plates-formes Unix, Macintosh et Windows. Développé par le Dr Greg Ewing de l’Université de Canterbury en Nouvelle-Zélande, le cadre MVC se concentre sur l’intégration dans l’écosystème Python aussi facilement que possible.

L’un des objectifs de la plateforme est d’interposer le moins de code possible entre l’application Python et l’interface graphique sous-jacente de la plateforme afin que l’affichage de l’application reflète toujours l’interface graphique native de la plateforme. Si vous recherchez un moyen simple et rapide d’apprendre l’interface graphique, commencez par celui-ci.

libavg

Il s’agit d’une autre bibliothèque tierce, écrite en C ++ et scriptée à partir de Python, avec des propriétés d’éléments d’affichage en tant que variables Python, un système de gestion d’événements complet, des minuteries (setTimeout, setInterval), la prise en charge de la journalisation et plus encore. Comme Kivy, libavg utilise OpenGL et utilise l’accélération matérielle.

Libavg fonctionne sous Linux, Mac OS X et Windows, et est open source et sous licence LGPL. Il a été largement utilisé pour les expositions artistiques et dispose d’un large éventail de fonctionnalités telles qu’un moteur de mise en page qui peut traiter des milliers d’objets (images, texte, vidéos et sortie de la caméra), une sortie vidéo rapide et un système de balisage pour afficher le texte, comme ainsi que des effets de shader GPU tels que le flou, Chromakery et plus encore. Les plugins écrits en C ++ ont accès à tous les internes de libavg.

Si jamais vous voyez beaucoup de gens jouer à un jeu multi-touch sur un grand écran plat, vous regardez peut-être un bon exemple de libavg en action.

wxPython

Il y a déjà eu deux livres écrits sur wxPython, ce qui vaut la peine d’être mentionné même s’il n’est pas tout à fait prêt pour Python 3. WxPython est basé sur wxWidgets, une bibliothèque GUI multiplateforme écrite en C ++. En plus des boîtes de dialogue standard, il comprend une API de dessin de chemin 2D, des fenêtres ancrables, la prise en charge de nombreux formats de fichiers et des widgets d’édition de texte et de traitement de texte.

Il existe un excellent ensemble de démos fournies avec wxPython, ainsi que plusieurs ensembles de didacticiels pour vous aider à démarrer. Étant donné que wxWidgets a un pedigree de développement de 22 ans, c’est l’un des frameworks les plus populaires. Assurez-vous de lire le wiki.

Conclusion

Il s’agit d’un grand ensemble de frameworks qui devraient couvrir la plupart des besoins (même si vous faites quelque chose de totalement ésotérique comme la programmation Python pour la finance!). Tous sauf PyQt sont entièrement gratuits. Et juste parce que nous sommes gentils, nous allons ajouter deux plateformes bonus pour réfléchir ici:

Traits / TraitsUI

Plateforme de création d’interfaces graphiques évolutives et multiplateformes, Traits / TraitsUI est capable de générer une interface utilisateur sans pour autant codage supplémentaire (en théorie). Offre une documentation solide via GitHub.

PySimpleGUI

Qui n’aime pas la simplicité? PySimpleGUI, mis à jour pour la dernière fois en février 2019, est un framework multiplateforme qui encapsule tkinter, Qt, wxPython et Remi. Vous pouvez l’utiliser pour créer des dispositions GUI avec relativement peu de code, et il y a beaucoup de documentation ici pour ceux qui débutent avec Python.

Articles Liés

Image: pyGUI

#Les #meilleurs #cadres #dinterface #graphique #Python #pour