web-dev-qa-db-fra.com

Développer des interfaces graphiques en Python: Tkinter vs PyQt

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

Je viens juste de commencer avec TkInter et j'ai pu obtenir des interfaces utilisateur simples avec des widgets élémentaires tels que label, bouton, zone de texte, etc. Vous êtes curieux de savoir comment comparer PyQt avec TkInter?

à votre santé

82
Arnkrishn

PyQt si vous développez quelque chose de sérieux, surtout si ce que vous apprenez se traduira directement par le travail avec Qt dans d'autres langues si vous en avez besoin, et Qt est probablement la meilleure boîte à outils d'interface multiplate-forme disponible à l'heure actuelle.

Il n'y a que deux inconvénients réels (potentiels):

PyQt est uniquement disponible sous GPL. Cela signifie que si vous publiez votre code, il doit être disponible sous une licence compatible, sous les termes de exception GPL de Nokia , ou sous une licence commerciale (qui coûte de l'argent). Cela contraste avec Qt, qui est maintenant disponible dans la LGPL.

PyQt n'est pas inclus par défaut avec Python installations. Vous allez devoir emballer vous-même la bibliothèque. (Ars Technica a un bon article pour le faire sous Windows. et OS X.)

63
Sam DeFabbia-Kane

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

J'ai peaufiné mon thème XP et maintenant ma peau d'applications en conséquence. Cela crée un aspect très professionnel, incomparable avec une boîte à outils comme Swing. L'API est étendue et va au-delà de la pure Des éléments d'interface graphique tels que les widgets. Il prend en charge la connectivité à la base de données, l'impression, les threads (je l'ai utilisé et il fonctionne à merveille), ... Je l'utilise même pour générer des PDF (aucune autre bibliothèque externe n'est nécessaire). Je recommanderais Mark Summerfield. réservez bien ' Programmation graphique rapide avec Python et Qt ' pour gagner du temps. N'oubliez pas que Qt est livré avec un générateur de GUI (concepteur de Qt) qui est le mieux 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é à 2 autres développeurs ici et je ne les ai pas entendus se plaindre ...

34
Wim Verhavert

J'utilise tkinter pour petites applications avec une interface simple. J'aime beaucoup, même si le manque de bon WYSIWYG éditeur pourrait être un problème pour une application plus grande.

Pour les grandes applications, PyQt pourrait constituer un meilleur choix. Il a un très bon concepteur d’écran, mais la licence peut poser problème.

Enfin, wxPython peut constituer une bonne alternative, car il ne présente pas ces inconvénients.

17
luc

PyQt est très facile à apprendre et la documentation pour Qt fonctionne également pour PyQt. Il existe également des ports pour .NET et Java. Donc, il s’agit d’une plate-forme féerique et d’un langage croisé. De plus, PyQt est intégré à Eric IDE .

Le support pour les styles CSS est aussi vraiment génial.

Consultez le nouveau programme d'installation OpenSuSE pour voir ce que vous pouvez faire avec.

7
przemo_li

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

3
Andre

J'utilise PyQt - Multiplateforme, facile à utiliser et fiable.

J'ai utilisé TkInter très léger et je n'arrive pas à trouver un point qui rend tkInter meilleur que PyQt.

1
Kaymatrix