Développement d'Interfaces graphiques en Python: Tkinter vs PyQt
Si l'on veut développer une interface utilisateur en Python, qu'on aller pour: TkInter ou PyQt?
J'ai commencé avec TkInter, et j'ai été en mesure d'obtenir quelques simples interfaces d'aller à l'élémentaire widgets comme étiquette, bouton, zone de texte, etc. Juste curieux de savoir comment bien PyQt par rapport à TkInter?
acclamations
- Aussi, notez qu'il existe quelques options disponibles pour vous en plus de simplement TkInter, et PyQt. wxPython est celui qui vient immédiatement à l'esprit, mais il y a une liste plus complète dans le wiki.python.org/moin/GuiProgramming et une liste plus courte de la plus commune GUI paquets listés dans le python.org/doc/faq/gui .
Vous devez vous connecter pour publier un commentaire.
PyQt si vous êtes à l'élaboration de quelque chose de sérieux, d'autant que les choses vous seront traduire directement à travailler avec Qt dans d'autres langues si vous en avez besoin, et Qt est probablement le meilleur de la croix-plate-forme de l'interface toolkit disponible dès maintenant.
Il y a seulement deux réels (potentiel) inconvénients:
PyQt est uniquement disponible sous la licence GPL. Cela signifie que si vous relâchez votre code, il doit être disponible sous une licence compatible, selon les termes de Nokia GPL Exception, ou en vertu d'une licence commerciale (qui coûte de l'argent). Ceci est en contraste à l'intervalle Qt, qui est maintenant disponible sous la licence LGPL.
PyQt n'est pas inclus par défaut avec Python installations. Vous allez avoir de paquet de la bibliothèque vous-même. (Ars Technica a un bon article sur le faire pour Windows et OS X.)
PyQt est notre principal outil graphique maintenant et après 1 an de développement, je ne veux pas revenir à autre chose. Il est stable, mature, multi-plateforme et complètement natif. Même le système des boîtes de dialogue (par exemple pour ouvrir des fichiers) sont ceux utilisés par votre système d'exploitation.
J'ai modifié mon thème XP et maintenant mes applications peau en conséquence. Cela crée un de très professionnel, n'est pas comparable avec une boîte à outils comme
Swing
. L'API est vaste et va au-delà de la pure GUI choses comme les widgets. Il prend en charge la connectivité de base de données, l'impression, le filetage (je l'ai utilisé et il fonctionne comme un charme),... j'ai même l'utiliser pour générer des fichiers PDF (pas d'autres libs nécessaires). Je recommande Mark Summerfield livre si " lesRapide de l'interface de Programmation avec Python et Qt' pour vous rendre sur la vitesse. Gardez à l'esprit que Qt est livré avec un GUI builder (Qt designer) qui est le meilleur que j'ai utilisé (et j'ai essayé beaucoup d'entre eux).J'ai même utiliser ce générateur pour créer des maquettes pour montrer aux utilisateurs (c'est plus facile!).
Je l'introduit dans les 2 autres développeurs ici et n'ai pas entendu se plaindre...
Je suis en utilisant
tkinter
pour de petites applications avec une interface simple. Je l'aime beaucoup, même si l'absence de bonne WYSIWYG éditeur peut être un problème pour un grand app.Pour les grosses applications,
PyQt
pourrait être un meilleur choix. Il a un très bon écran de designer, mais la licence peut être un problème.Enfin,
wxPython
peut être une bonne alternative, car il n'a pas ces inconvénients.PyQt est vraiment facile à apprendre et docs pour Qt fonctionne également pour PyQt aussi il y a des ports .NET et Java. Donc, il est de fée de la croix-plateforme et multi langue.
Aussi, vous avez PyQt intégré dans Eric IDE.
Le soutien de styles CSS est aussi vraiment génial.
Voir la nouvelle OpenSuSE installer pour voir ce que vous pouvez faire avec lui.
Vous pouvez créer d'énormes Interfaces graphiques à l'aide de Tkinter. Si vous voulez essayer le pytkgen module, il contribue à la création d'interface graphique Tkinter est du JSON définitions: https://github.com/tmetsch/pytkgen
- Je utiliser PyQt - Croix-plate-forme, Facile à travailler et fiable.
J'ai utilisé TkInter très léger et je ne peux pas trouver un point de prise de tkInter mieux que PyQt.