Quel framework utilisez-vous pour les interfaces graphiques de vos programmes Python en 2013 ?
Quelles sont les raisons qui ont motivé ce choix ?

Le , par Jiyuu, Rédacteur/Modérateur
Quel framework GUI utilisez-vous pour vos programmes Python en 2013 ?
Quel framework utilisez-vous pour les interfaces graphiques de vos programmes Python en 2013 ?
Quelles sont les raisons qui ont motivé ce choix ?

Bonjour,

Le développeur Python, amateur ou non, a un choix important en ce qui concerne la bibliothèque graphique lors de la conception de ses programmes.

Pour des raisons d’habitude, de plateforme, de licence, d'esthétiques ou toute autre raison son choix va alors se tourner vers un framework GUI bien précis.

Et vous ?

Avec quel framework GUI travaillez-vous actuellement ? Pour quelle(s) raison(s) ?
Seriez-vous prêt ou envisageriez-vous de changer ? Si oui, pour lequel ? Et pourquoi ?
Ou bien êtes-vous de ceux qui pensent que Python, c'est bien mais pas pour des GUI. Quels sont vos griefs ? Que manque-t-il à Python ?

Participez au débat et n'hésitez pas à argumenter votre vote en confrontant votre point de vue avec les autres membres et en donnant les raisons de votre choix, vos expériences passées, vos remarques... N'hésitez pas à discuter l'évolution depuis notre précédent sondage.

Bon vote à tous


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de palnap palnap - Membre actif https://www.developpez.com
le 27/08/2013 à 10:42
On peut faire des interfaces graphiques en Python ?
Avatar de olaxius olaxius - Membre actif https://www.developpez.com
le 27/08/2013 à 11:10
bonjour,
J'ai choisi wxpython pour le nombre de ses widgets et leur esthétisme .
Point noir il n'y a pas de version pour python 3 dommage .
Avatar de Jiyuu Jiyuu - Rédacteur/Modérateur https://www.developpez.com
le 27/08/2013 à 11:36
Citation Envoyé par olaxius Voir le message
bonjour,
J'ai choisi wxpython pour le nombre de ses widgets et leur esthétisme .
Point noir il n'y a pas de version pour python 3 dommage .
Une bonne raison peut-être de passer à PyQt ou PySide (comment ça je ne suis pas impartial ? )
Avatar de jpver jpver - Nouveau Candidat au Club https://www.developpez.com
le 27/08/2013 à 13:21
Bonjour,

J'utilise wxPython 2.8.12. Il y a vraiment beaucoup de sortes de widgets.
Le widget wx.grid est très souple pour représenter les données sous forme de grille.
Le module d'impression est correct (seul petit bug gênant : quand je demande 2 copies, j'en reçois 4).

Je ne connais pas PyQt / PySide. De toute manière, ça me prendrait beaucoup trop de temps pour transformer mes programmes.

Pour info, une version wxPython 2.9.5 pour Python 3.2 et 3.3 est en cours de développement (http://www.wxpython.org/Phoenix/snapshot-builds/). Elle me semble déjà fonctionnelle pour une utilisation simple. Je ne l'utilise pas car l'outil wx.grid me semble buggé (gridCellRenderer, gridCellEditor, déplacement des colonnes, ...).
Avatar de vincent.mbg vincent.mbg - Membre confirmé https://www.developpez.com
le 27/08/2013 à 21:46
Bonjour

J'utilise Tkinter il est simple et en natif sous python. Les petits moins, les widgets sont moins nombreux que dans les autres bibliothèques et Tkinter n'est pas super thread safe même si Tcl/tk est compilé avec l'option enable threads.
Avatar de deusyss deusyss - Rédacteur/Modérateur https://www.developpez.com
le 29/08/2013 à 8:46
Bonjour à tous,

Personnellement, j'utilise PYGTK. Bien qu'un peu brut de décoffrage, au niveau esthétique, il est relativement aisé de le prendre en main, et les widgets présents sont suffisants pour la plupart des usages. De plus, travaillant sous environnement GTK, cela semble plus naturel.

Si je désire ne pas embêter l'utilisateur avec des librairies externes, j'utilise tkinter. Mais j'avoue ne pas etre fan du style "bloc de beton"

Concernant le changement, je n'en ressent pas le besoin. Mais sinon, j'hésiterai je pense entre wx et qt, pour leur côté esthétique. J'y viendrai probablement un jour mais ce sera avant tout par curiosité. Peut être après par conviction.
Avatar de le merou le merou - Nouveau membre du Club https://www.developpez.com
le 29/08/2013 à 9:54
J'ai un peu utilisé PyQt pour un projet professionnel, et couplé avec QtDesigner ça reste une bonne solution si correctement installé (j'utilise la distribution WinPython qui est relativement bien équipé).
http://code.google.com/p/winpython/

Par contre j'ai récemment découvert Kivy et sa gestion du "multi-touch" et je pense l'utiliser pour un futur projet.
http://kivy.org/
Avatar de Jiyuu Jiyuu - Rédacteur/Modérateur https://www.developpez.com
le 29/08/2013 à 10:01
Sans grande surprise j'ai voté pour PyQt / PySide.

Pourquoi ?
Avant tout, il faut savoir que je suis passé par Tkinter () puis wxPython avant d'arriver à PyQt / PySide. Je connais donc ces deux frameworks, même si cela fait un bail que je ne les ai plus utilisés.

Le gros avantage avec PyQt / PySide réside notamment dans le fait qu'ils sont extrêmement complets et très régulièrement mis à jour, en particulier PyQt qui suit de très prêt à la fois l'évolution de Python et celle de Qt (la dernière version de PyQt est compatible avec Python 3.3 et est basée sur Qt 5.1)

Avec ces framework il n'y a quasiment rien que l'on ne puisse faire, ce qui m'avait même pousser à me poser la question : si j'ai le choix, vaut-il mieux utiliser les outils originels de Python ou plutôt préférer ceux du framework ?

Leur utilisation est aussi très aisée et la documentation très complète. Il est en outre assez simple de trouver de l'aide avec la doc Qt ou la FAQ Qt si jamais il manque des infos en "pur" PyQt / PySide.

Et pour finir, l'esthétique est vraiment très bien faite.

Que du positif quoi
Avatar de wiztricks wiztricks - Modérateur https://www.developpez.com
le 29/08/2013 à 13:19
Salut,

Je ferais la même réponse qu'il y a 3 ans: il n'y a toujours pas de GUI Python qui s'impose au delà de bindings qui permettent aux programmeurs d'utiliser Tk, Qt, Wx, ... a partir de Python.

Ce qui conduit a plusieurs défauts:
  • Pour les utiliser efficacement, le programmeur devra traduire une documentation et des exemples écrits pour un programmeur C, C++, TCL,... C'est bien pour la gymnastique des neurones, mais arriver a traduire sans perte n'est pas gagne.
  • Les différences dans la gestion mémoire ne sont pas toujours maîtrisables (Python utilise un GC, les frameworks autre chose). Ce qui rend délicat la maintenance de telles applications (au delà du brico, proto, truc fait sur un coin de table).
  • Certains frameworks sont "intrusifs": Qt par exemple apporte beaucoup de fonctionnalités que Python a déjà. Faut-il utiliser le paradigme Qt (et pourquoi programmer en Python dans ce cas) ou programmer en Python sauf pour la partie GUI?(*)
  • Comme ce sont des "bindings", il est aussi complique de les utiliser en natif qu'en Python (nombre de lignes). La facilite de leur mise en œuvre avec Python est sympa pour débuter, mais pourra devenir contre-productive au delà.


Pas de soucis tant qu'on reste dans le brico, proto,... On utilise souvent dans ce cas, les fonctionnalités "basiques" , illustrées dans les tutos, et (relativement) faciles a mettre en œuvre quelque soit le framework.

Ceci dit Wx, Tk, Qt, Gtk,.... sont des frameworks de GUI de l'informatique client/serveur du siècle dernier. Plein d'applications ont ete construites avec et il est bon de savoir comment ça fonctionne pour se depatouiller avec.

Les IHM d'aujourd'hui sont plutôt HTML5, JavaScript, CSS et Kivy (déjà cite) ou panda3d sont un peu moins "has been".

- W
Avatar de Jiyuu Jiyuu - Rédacteur/Modérateur https://www.developpez.com
le 29/08/2013 à 13:43
Citation Envoyé par wiztricks Voir le message
Les IHM d'aujourd'hui sont plutôt HTML5, JavaScript, CSS et Kivy (déjà cite) ou panda3d sont un peu moins "has been".
Et QML disponible avec PyQt5 .
Contacter le responsable de la rubrique PyQt & PySide