banniere.png

Les principaux toolkits graphiques en Python

Ayant besoin de programmer une petite application desktop, je planche sur les toolkits existants en Python pour concevoir les interfaces. La dernière fois que je me suis réelement penché sur le sujet c'est pour en parler dans mon livre.

Un bon toolkit graphique doit posséder les qualités suivantes:

  • Etre réelement portable: mise à part la programmation système avancée, et quelques cas précis, il n'y a aucune bonne raison pour qu'un module Python ne soit pas portable.
  • Permettre une production simple des interfaces. Les toolkits qui nécessitent de lancer des scripts pour transformer des fichiers de description générés par des éditeurs WYSIWYG en code Python imposent des processus lourds. D'autres ont un cycle plus simple.
  • Offrir un look'n'feel conforme à chaque plateforme. C'est une extension du premier point. Certains toolkit sont portables mais également universellement moches.
  • Etre un minimum pythonique. Les bindings générés avec des outils automatiques donnent un look'n'feel de C++ assez désagréable au code.

La page sur le sujet sur python.org date de 2003, (ah tiens, pas relookée non plus au nouveau design du site). C'est ancien mais finalement, en 3 ans, il n'y a pas eu énormément de nouveautés, mise à part l'apparition de QT4, et des améliorations des toolkits majeurs. Le seul grand changement c'est la mort de la plupart des toolkits outsiders, et un livre sur wxPython chez Manning.

Je continue à creuser le sujet, en lisant notamment un tuto de Fab sur GTK, et en gardant en mémoire les qualités que je souhaite avoir dans le toolkit choisi. En attendant un prochain billet sur mes essais, voici un tableau récapitulatif des toolkits à tester, avec quelques critères déjà.

Nom Toolkit Windows
Linux Mac Site Remarques
TkInter Inclus dans Python
X X X http://tkinter.unpythonic.net/wiki/ moche
PyKDE KDE
X
http://riverbankcomputing.co.uk/pykde pas portable
PyQT QT X X X http://www.diotavelli.net/PyQtWiki Attention aux licences
PyGTK GTK+ X X X http://www.pygtk.org/

wxPython wxWidgets X X X http://wiki.wxpython.org/
Semble standard
PyObjC Cocoa X http://developer.apple.com/cocoa/pyobjc.html Accès aux widgets de MacOSX


Message aux pros du domaine: n'hésitez pas à réagir, ou à corriger d'éventuelles erreurs.

Maj 29/10
: merci pour toutes les réactions ! En attendant de mettre à plat les commentaires, voici un résumé des idées données:

  • Thomas conseille le couple Glade/GTK+, et déconseille PyQT à cause des licences.
  • Skateinmars observe que PyGTK s'en sort mal comparé aux autres toolkits.
  • Kib rappelle que la doc ne fait pas tout, et que le choix peut être influencé par la réactivité de la communauté. Il présente aussi Gazpacho comme alternative à Glade.
  • ToutPT prône pour wxPython, mais trouve que les outils d'édition de QT sont très puissants.

Vous aimez ce post ? partagez-le :


"PyGTK" posté par Thomas le 26/10/2006 à 03:00
Bonjour Tarek!
J'ai eu a developper dans mon ancienne société des interfaces graphiques. Le premier toolkit que j'ai utilisé fût Tkinter car comme tu le dis, il est intégré à python. Par la suite, étant sur un plateforme linux (ubuntu pour ne pas faire de pub!), je me suis penché vers pygtk qui avec glade permet de faire de très bonne IHM. Pour ce qui est de la portabilité,  sous windows par exemple, je crois qu'il faut installer GTK+ avec ses dépendances ( panga, Cairo...). Que ce soit sur linuc ou windows, tu auras la même aparence.
Pour parler un peu de wxpython, toolkit sur lequel je me renseigne un peu, j'ai du lire quelque part que l'apparence de l'application s'intégrait parfaitement quelque soit le thème que tu utilises. Mais là, j'en suis pas sûr, faut que je retrouve le lien.
A+
"Doc et gtk" posté par Skateinmars le 26/10/2006 à 07:43
Je trouve tout de même que la doc est assez importante dans le choix d'un toolkit, et dans ce domaine pyGTK ne s'en sort malheureusement pas très bien :/
"Re: PyGTK" posté par Tarek le 26/10/2006 à 09:10
Salut Thomes,

Merci pour le feedback. Avec tes éléments, j'ai l'impression que le choix est à faire entre wxPÿthon et PyGTK. A suivre...
"Re: Doc et gtk" posté par Tarek le 26/10/2006 à 09:17
Salut Skate,
justement je n'ai pas trouvé de comparatif récent qui contient PyGTK et wxPython. Les anciens liens que j'ai donne wxPython "gagnant" car il y a quelques annnées GTK+ n'était pas dispo sous windows. Si tu a des liens je suis preneur.

"Re: Doc et gtk" posté par Kib² le 26/10/2006 à 10:02
Salut,

En ce qui concerne la doc, il est clair que TkInter est de loin de mieux servi sur le sujet. Ensuite, je dirais WxPython, en particulier grâce au livre paru chez Manning. Celle de PyQt3 est relaltivement bien fournie, et on trouve des exemples très facilement. Gtk a une doc potable, mais sans plus. Quant à PyQt4, l'essentiel de la doc vient de celle de C++, il est encore trop jeune là dessus.

Mais la doc ne fait pas tout, les communeautés sont aussi à prendre en compte : forum, mailing-lists, irc, etc. En ce moment par exemple, je bosse avec PyQt4 et lorsque j'ai un problème, je ne sais pas trop où me diriger. Ca m'est arrivé hier et j'ai demandé sur qtfr, les réponses sont rapides pourvu que l'on connaisse un minimum comment passer de C++ à Python. Les mailing-lists sont très contraignantes je trouve, surtout si l'on désire poster : il faut s'inscrire, attendre confirmation, et les forum sont trop peu nombreux.

A l'époque ou j'étais sous Linux, je me rapelle avoir utilisé Gazpacho pour GTK, un fork de Glade écrit en Python. Il possède certaines fonctionnalités vraiment sympathiques, notamment celle d'avoir tout à disposition sur une seule et même fenêtre, un système de templates, etc. A voir sur http://gazpacho.sicem.biz/.
"Re: Documentation" posté par ToutPT le 26/10/2006 à 11:44
Salut Tarek, j'ai effectué la même recherche que toi il y a quelques mois. wxPython s en sort haut la main selon moi.

QT fait très mal sur la license même si je suis gros utilisateur de KDE, je dois
avouer que je n'ai pas confiance.

Un des points fort selon moi des toolkits est le designer, et la dessus QT est au dessus des autres. En effet quelle meilleur preuve de la fiabilité d'un toolkit graphic que de permettre le design de ses propres fenetres (aurevoir TK)

Au fait rien avoir mais à quand les editeurs de text Javascript qui permettent de mettre en justify le texte ?
"Re: PyGTK" posté par Thomas le 26/10/2006 à 12:45
Entre wxpython et pyGTK, je ne sais pas, ce sont les seuls que j'ai utilisé. Pour pyQT, du fait de sa licence payante pour windows, ça ne me tente pas, et pyKDE, c'est la premiere fois que j'en entends parler en fait ;)
Trackback URL | Categories: coding, documentation 7 comments - add

Tarek Ziadé. Copyright 2006. Tous droits réservés. Licence contenu site
BuzTrucs
Add to Technorati Favorites