89 votes

Développer une interface utilisateur en Python - TkInter Vs PyQt

Si l'on veut développer une interface utilisateur en Python, laquelle choisir ? TkInter ou PyQt ?

Je viens de commencer à utiliser TkInter et j'ai pu créer quelques interfaces utilisateur simples avec des widgets élémentaires comme des étiquettes, des boutons, des boîtes de texte, etc. Je suis juste curieux de savoir si PyQt serait plus performant que TkInter ?

salutations

71voto

Sam DeFabbia-Kane Points 1821

PyQt si vous développez quelque chose de sérieux, d'autant plus que les choses que vous apprenez se traduiront directement en travaillant avec Qt dans d'autres langues si vous en avez besoin, et Qt est probablement la meilleure boîte à outils d'interface multiplateforme disponible actuellement.

Il n'y a que deux inconvénients réels (potentiels) : PyQt n'est disponible que sous la GPL (ce qui signifie que votre code doit également être disponible sous une licence compatible ou sous les termes de la licence L'exception GPL de Nokia si vous le diffusez) ou sous une licence commerciale (qui coûte de l'argent). Ceci est en contraste avec Qt, qui est maintenant disponible sous la LGPL. PyQt n'est pas non plus inclus par défaut dans les installations de Python - vous allez devoir empaqueter la bibliothèque vous-même. (Ars Technica a un bon article sur la façon de le faire pour Windows et OS X).

37voto

Wim Verhavert Points 317

PyQt est notre principale boîte à outils d'interface graphique et, après un an de développement, je ne veux pas revenir à autre chose. C'est stable, mature, multiplateforme et complètement natif. Même les boîtes de dialogue du système (par exemple pour ouvrir des fichiers) sont celles utilisées par votre système d'exploitation.

J'ai modifié le thème de mon XP et maintenant mes applications s'habillent en conséquence. Cela crée un look très professionnel, non comparable avec une boîte à outils comme Swing . L'API est très complète et va au-delà de l'interface graphique pure comme les widgets. Elle prend en charge la connectivité aux bases de données, l'impression, le threading (je l'ai utilisé et cela fonctionne comme un charme),... Je l'utilise même pour générer des PDF (aucune autre librairie externe n'est nécessaire). Je recommande cependant le livre de Mark Summerfield ' Programmation rapide d'interfaces graphiques avec Python et Qt ' pour vous mettre en vitesse. Gardez à l'esprit que Qt est livré avec un constructeur d'interface graphique (Qt designer) qui est le meilleur que j'ai utilisé (et j'en ai essayé beaucoup).
J'utilise même ce constructeur pour créer des maquettes à montrer aux utilisateurs (c'est aussi simple que cela !).

Je l'ai présenté à deux autres développeurs ici et je ne les ai pas entendus se plaindre...

19voto

luc Points 13564

J'utilise TkInter pour les petites applications avec une interface simple. Je l'aime beaucoup même si le manque de bon WYSIWYG html L'éditeur pourrait être un problème pour les applications plus importantes.

Pour les grandes applications, PyQt est peut-être un meilleur choix. Il possède un très bon concepteur d'écran, mais la licence peut être un problème.

Enfin, wxPython peut être une bonne alternative car elle ne présente pas ces inconvénients.

8voto

przemo_li Points 264

PyQt est vraiment facile à apprendre et la documentation de Qt fonctionne également pour PyQt. Il existe également des ports pour .NET et Java. Il est donc équitablement multiplateforme et multi-langue. De plus, PyQt est intégré dans l'IDE Eric !

EDITAR:

Oh et la prise en charge des styles css* est tout simplement géniale. Voir le nouvel installateur d'OpenSuSE pour voir ce que vous pouvez faire avec.

*Ce n'est pas le css complet mais une grande partie de celui-ci.

3voto

Andre Points 59

Vous pouvez créer d'énormes interfaces graphiques en utilisant Tkinter. Si vous aimez essayer le module pytkgen, il aide à créer des interfaces graphiques Tkinter à partir de définitions JSON : https://github.com/tmetsch/pytkgen

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X