web-dev-qa-db-fra.com

wxPython vs PyQt vs PyGTK: quand et quoi utiliser?

  • Besoin des conseils de ceux qui ont une expérience minimale en matière de santé pour concevoir des interfaces GUI avec Python.
  • Quand et quoi choisir en fonction de la complexité de l'interface graphique?
  • Quels constructeurs GUI pouvons-nous utiliser pour avoir une meilleure qualité de développement?

Ceci est ma première conception d'interface graphique, et je l'ai fait sans générateur d'interface graphique, pour le moment empilé parce que j'ai compris que ObjectListView wrapper pour wx.ListCtrl ne doit pas inclure nativement facilement la barre de progression ou des éléments de jauge. (voir la colonne "Statut de téléchargement" de l'image).

Remarque: ObjectListView a une barre de progression dans la version .Net, pour le moment pas dans wx.Python.

P.S: J'ai trouvé ce merveilleux Python GTK + Full Stack Tutorial

enter image description here

39
user1630938

Je ne sais pas vraiment ce que vous demandez. wxPython et pyQt/pyside sont probablement les plus faciles à utiliser sur toutes les plates-formes et seront parfaitement adaptés à la plupart des systèmes d'exploitation. Je sais que wxPython est spécialement conçu pour encapsuler les widgets natifs, donc si vous voulez que votre application soit native, je pense que wxPython est la solution. Si vous souhaitez être en mesure de thème/skin votre application, alors PyQT ou pyGTK peuvent être mieux.

PyQt/PySide prend en charge le mobile dans une certaine mesure, ce que je ne pense pas que les deux autres le fassent. Si vous prévoyez de programmer pour mobile, vous voudrez peut-être emprunter cette voie ou regarder Kivy.

PyQt/PySide ont un éditeur WYSIWYG assez puissant. wxPython en a quelques uns, mais je ne pense pas qu'aucun d'entre eux ne supporte tous les widgets de wx et leur support est inégal. Cela ne m'a pas arrêté car je fais tout mon codage à la main de toute façon.

Comme d'habitude, vous devrez probablement lire beaucoup de documentation et essayer chacune d'elles pour voir celle qui correspond à votre cerveau et répond le mieux à vos besoins.

23
Mike Driscoll

N'utilisez pas PyGTK si vous souhaitez une compatibilité multiplateforme. GTK3 ne fonctionne pas encore sur Windows (la dernière fois que j'ai vérifié) et GTK2 a une fuite de mémoire horrible sous Windows qui a été corrigée dans la dernière source, mais aucune nouvelle version n'a été compilée pour Windows.

Je mettrais mon vote avec PySide (licence plus flexible pour les options commerciales) sur PyQt et PySide/PyQt sur wxPython simplement parce que je pense que l'outil de conception graphique est meilleur! Être capable de créer et de modifier rapidement l'interface graphique graphiquement (et indépendamment du code de vos applications) est un énorme gain de temps.


Mise à jour: En fait, je recommanderais PyQt sur PySide maintenant pour des raisons de stabilité et de support à long terme. Le développement de PySide est en retard, il y a très peu de gens qui corrigent les bugs et personne ne travaille sur le support de Qt 5.

14
three_pineapples

PyQT dans Windows

PyQT in Windows

PyGTK

PyGTK

PyQT dans KDE

PyQT in KDE

  1. PyQT dans Windows
  2. PyGTK + 3
  3. PyQT dans KDE

Donc, si vous optez pour PyQT, la conception de votre application sera différente selon les différents systèmes d'exploitation et environnements de bureau. Je n'ai pas Macintosh, je ne peux donc pas fournir une image à quoi ressemblera mon application. Ceci est l'une de mes applications écrites en PyQT et PyGTK + 3. Gardez à l'esprit que le design restera tel quel avec PyGTK + 3, donc il n'y aura pas de différences comme dans PyQT. C'est certainement le plus facile à apprendre, car il existe un programme Glade qui vous aidera à construire votre conception sans même passer une minute à la coder manuellement. Mais avec PyQT, vous pouvez affiner la conception de l'application et cela ne vous fera pas vous arracher les cheveux.

12
HexSFd