Cet article a été initialement publié en mai 2016 et a été mis à jour avec de nouvelles informations.
Il arrive un moment dans le voyage de la plupart des programmeurs quand ils sont prêts à se ramifier au-delà des exemples de base et à commencer à construire une interface graphique pour leur programme.
en Python, les étapes pour commencer avec la programmation GUI ne sont pas terriblement complexes, mais elles nécessitent que l’utilisateur commence à faire des choix., De par sa nature de langage de programmation À Usage général avec des interprètes disponibles dans tous les systèmes d’exploitation courants, Python doit être assez agnostique quant aux choix qu’il présente pour créer des interfaces utilisateur graphiques.
Heureusement, il existe de nombreuses options disponibles pour les programmeurs qui cherche à créer un moyen facile pour les utilisateurs d’interagir avec leurs programmes. Des liaisons existent pour plusieurs frameworks D’interface utilisateur sur une variété de plates-formes, y compris celles natives pour Linux, Windows et Mac, et beaucoup qui fonctionnent sur les trois.,
avant d’aller plus loin, soyez l’avocat du diable pendant un moment et demandez: est-il vraiment logique que votre application ait une interface utilisateur graphique traditionnelle? Pour certains programmes, la réponse est évidente. Si votre application est intrinsèquement graphique et est optimisée pour ou a tout simplement du sens pour être exécutée localement sur une seule machine locale, alors oui, vous devriez probablement envisager de créer une interface graphique de bureau. Souvent, cela est rendu évident par ce que vous concevez.
mais pour les programmes à usage général, ne comptez ni la ligne de commande ni une interface web., La ligne de commande offre de nombreux avantages—vitesse, accès à distance, réutilisabilité, scriptability et contrôle—ce qui peut être plus important pour les utilisateurs de votre application qu’une interface graphique, et il existe de nombreuses bibliothèques comme Click, Cement et Cliff qui facilitent la conception de grands programmes de ligne de commande.
de même, une interface web, même pour un programme destiné à être exécuté localement, pourrait être une option à considérer, en particulier si vous pensez que vos utilisateurs souhaitent héberger votre application à distance, et des projets comme Django, Flask ou Pyramid rendent cela simple., Vous pouvez même utiliser une bibliothèque comme pywebview pour mettre un wrapper mince autour d’une application web dans une fenêtre GUI native.
alternativement, vous pouvez utiliser un framework comme Pyforms pour créer une expérience cohérente sur le web, la ligne de commande et le bureau, le tout avec une seule base de code.
toujours sûr de vouloir construire une interface graphique? Génial, voici quelques bibliothèques Open source fantastiques pour vous aider à démarrer.,
PyQt, PySide et Qt pour Python
PyQt implémente la populaire bibliothèque Qt, et donc si vous êtes familier avec le développement de Qt dans un autre langage, peut-être en développant des applications natives pour KDE ou un autre environnement de bureau basé sur Qt, vous connaissez peut-être déjà Qt. Cela ouvre la possibilité de développer des applications en Python qui ont un aspect familier sur de nombreuses plates-formes, tout en tirant parti des outils et des connaissances de la grande communauté Qt.
Qt est bien établi dans la communauté des développeurs et dispose d’outils reflétant cela., Écrire des applications Python autour de Qt signifie que vous avez accès à QtCreator, qui dispose d’un mode concepteur pour générer du code pour la mise en page de votre application.
PyQt est une licence double sous licence commerciale et GPL, un peu comme Qt project lui-même, et la principale société prenant en charge PyQt propose une FAQ de licence pour vous aider à comprendre ce que cela signifie pour votre application.
pour une autre option d’utilisation des bibliothèques Qt avec Python, considérez Qt for Python (communément appelé PySide2), disponible sous LPGL.,
Tkinter
S’il y avait un seul paquet qui pourrait être appelé la boîte à outils GUI « standard » pour Python, ce serait Tkinter. Tkinter est un wrapper autour de Tcl / Tk, une interface graphique populaire et l’appariement de langue d’abord popularisé au début des années 90. l’avantage de choisir Tkinter est le grand nombre de ressources, y compris des livres et des échantillons de code, ainsi qu’une grande communauté d’utilisateurs qui peuvent être en mesure de vous aider si vous avez des questions. Les exemples simples sont faciles à démarrer et assez lisibles par l’homme.,
Tkinter est disponible sous la licence Python, en plus de la licence BSD De Tcl / Tk.
WxPython
WxPython apporte la bibliothèque graphique multiplateforme wxWidgets de son C++ natif à Python. WxPython semble un peu plus natif que Tkinter sur différents systèmes d’exploitation car il utilise les widgets du système hôte pour construire une interface graphique. Il est assez facile de commencer avec ainsi, et a une communauté de développeurs en croissance. Vous devrez peut-être regrouper wxPython avec vos applications, ou demander à l’utilisateur de l’installer lui-même, car il n’est pas automatiquement installé avec Python.,
WxPython utilise la licence de la bibliothèque wxWindows de son projet parent, qui est approuvée par OSI.
Python GTK+ 3
anciennement connu sous le nom de PyGTK, le projet Python GTK+ 3 fournit des liaisons Python aux objets GTK (fenêtres, widgets, etc.). GTK + est le plus célèbre utilisé comme base pour le bureau GNOME, mais il est disponible pour les applications autonomes sur Linux, Windows et Mac. Avec Python GTK + 3, le même framework est disponible pour vos projets Python.
lorsque vous utilisez Python GTK+ 3, vous pouvez utiliser plusieurs des mêmes outils de développement créés pour GTK+ lui-même., Plus particulièrement, Cela inclut Glade, un concepteur d’interface pour les applications GTK+. Les Interfaces conçues dans Glade sont enregistrées au format XML et utilisées par L’objet GtkBuilder dans le code de votre application, mais l’interface que vous utilisez est glisser-déposer, ce qui facilite la création d’une interface utilisateur dynamique et réactive sans avoir à traduire ce que vous voyez dans votre esprit en code de mise en page.
Kivy
construit avec un développement rapide et des appareils modernes à l’esprit, Kivy est une boîte à outils pour Linux (y compris le Raspberry Pi), Windows, Mac et Android., Le projet est axé sur les » interfaces utilisateur innovantes », et il a été utilisé pour des applications multimédias, comme les applications de contrôleur de musique pour les téléphones aux applications de tableau blanc qui occupent tout le mur d’une salle de réunion.
Kivy n’a pas de programme de mise en page visuelle comme QtCreator et Glade, mais il utilise son propre langage de conception pour vous aider à associer la mise en page de L’interface utilisateur aux objets de code. Cela vous permet de compartimenter facilement (mentalement et dans le code de mise en page) les classes et les fonctions de votre application., Kivy héberge également le jardin Kivy, un référentiel de widgets et d’add-ons créés par l’utilisateur, donc si vous envisagez de créer quelque chose que Kivy lui-même ne fournit pas, vous pouvez qu’il existe déjà dans le jardin.
Ce ne sont pas les seuls choix que vous avez à votre disposition, même pas à long terme. Pour plus d’options, consultez la page « GUI programming in Python » sur le Wiki officiel de Python Software Foundation, qui répertorie des dizaines d’autres outils. Des Solutions sont disponibles pour lier Python à de nombreuses bibliothèques de widgets et outils graphiques différents tels que FLTK, FOX et bien d’autres., Alors que les débutants devraient probablement éviter les projets ne fournissant que des implémentations partielles, ou ceux qui ne sont plus activement maintenus, il existe de nombreux bons outils pour une variété de situations.
de nombreuses options existent pour les applications traditionnelles qui prennent l’apparence fenêtrée de leur environnement de bureau parent, mais il y a aussi des moments où vous voudrez peut-être faire quelque chose de complètement différent, par exemple, dans un jeu vidéo. Il existe également d’excellentes bibliothèques pour ces situations, comme pygame, pyglet et Panda3d.
Leave a Reply