1. PyQt et les autres bibliothèques de
développement d'interfaces graphiques
PyQt n'est pas la seule manière de réaliser des interfaces graphiques. En réalité,
l'environnement Python ne manque pas de choix : notamment, Tkinter (construit pardessus Tk), qui a l'avantage d'être livré par défaut avec Python ; cependant, il possède
peu de composants graphiques de base (boutons, zones de texte, etc.). En outre, vous
devrez recourir à des extensions pour disposer de composants graphiques très utilisés,
comme des boîtes de dialogue (pour afficher une information à l'utilisateur ou lui
demander de sélectionner un fichier), ainsi que des fonctionnalités comme le glisserdéposer. Beaucoup de développeurs lui reprochent une mauvaise intégration avec
l'environnement de bureau, un souci qui a toutefois été corrigé avec les années.
L'autre grand concurrent est wxPython, qui à nouveau correspond à une couche de
liaison vers une bibliothèque C++ (wxWidgets). Comme PyQt, il doit être installé
séparément de Python et est livré avec quantité de composants graphiques (à la
différence de Tkinter). Cependant, le développement de la branche actuelle est très lent
(pas de nouvelle version depuis 2014) et wxPython n'est toujours pas compatible avec
Python 3 (contrairement aux deux autres ; pourtant, Python 3.0 est sorti en 2008). Le
projet Phoenix a un développement actif et remédie à ces problèmes, mais il n'est pas
encore utilisable par le grand public.
Alors, quelle bibliothèque utiliser ? Toutes trois sont très matures, elles existent déjà
depuis un certain temps et sont disponibles gratuitement ; chacune a sa propre
communauté, qui propose son aide sur les forums et listes de diffusion. Tkinter est
souvent dite pour être la moins intuitive des trois, PyQt est la seule à proposer une
approche déclarative (détaillée dans Développement d'une application avec Qt Quick).
Ces aspects techniques ne sont pas les seuls importants, l'environnement de chaque
bibliothèque importe au moins autant. PyQt dispose d'une documentation de qualité et
celle de Qt reste exploitable en Python. Aussi bien wxPython que PyQt disposent d'un
éditeur visuel d'interfaces (respectivement, wxGlade et Qt Designer).
Globalement, PyQt dispose d'un bon nombre d'avantages par rapport à ses concurrents,
tant au niveau technique pur que dans l'environnement : après les avoir essayés,
beaucoup de personnes (dont les auteurs) préfèrent généralement travailler avec PyQt
plutôt que wxPython ou Tkinter.
13
développement d'interfaces graphiques
PyQt n'est pas la seule manière de réaliser des interfaces graphiques. En réalité,
l'environnement Python ne manque pas de choix : notamment, Tkinter (construit pardessus Tk), qui a l'avantage d'être livré par défaut avec Python ; cependant, il possède
peu de composants graphiques de base (boutons, zones de texte, etc.). En outre, vous
devrez recourir à des extensions pour disposer de composants graphiques très utilisés,
comme des boîtes de dialogue (pour afficher une information à l'utilisateur ou lui
demander de sélectionner un fichier), ainsi que des fonctionnalités comme le glisserdéposer. Beaucoup de développeurs lui reprochent une mauvaise intégration avec
l'environnement de bureau, un souci qui a toutefois été corrigé avec les années.
L'autre grand concurrent est wxPython, qui à nouveau correspond à une couche de
liaison vers une bibliothèque C++ (wxWidgets). Comme PyQt, il doit être installé
séparément de Python et est livré avec quantité de composants graphiques (à la
différence de Tkinter). Cependant, le développement de la branche actuelle est très lent
(pas de nouvelle version depuis 2014) et wxPython n'est toujours pas compatible avec
Python 3 (contrairement aux deux autres ; pourtant, Python 3.0 est sorti en 2008). Le
projet Phoenix a un développement actif et remédie à ces problèmes, mais il n'est pas
encore utilisable par le grand public.
Alors, quelle bibliothèque utiliser ? Toutes trois sont très matures, elles existent déjà
depuis un certain temps et sont disponibles gratuitement ; chacune a sa propre
communauté, qui propose son aide sur les forums et listes de diffusion. Tkinter est
souvent dite pour être la moins intuitive des trois, PyQt est la seule à proposer une
approche déclarative (détaillée dans Développement d'une application avec Qt Quick).
Ces aspects techniques ne sont pas les seuls importants, l'environnement de chaque
bibliothèque importe au moins autant. PyQt dispose d'une documentation de qualité et
celle de Qt reste exploitable en Python. Aussi bien wxPython que PyQt disposent d'un
éditeur visuel d'interfaces (respectivement, wxGlade et Qt Designer).
Globalement, PyQt dispose d'un bon nombre d'avantages par rapport à ses concurrents,
tant au niveau technique pur que dans l'environnement : après les avoir essayés,
beaucoup de personnes (dont les auteurs) préfèrent généralement travailler avec PyQt
plutôt que wxPython ou Tkinter.
13
