J'ai un peu d'expérience dans le développement de petites applications en ligne de commande avec Python. Je veux passer au développement d'interfaces graphiques avec Python. Parmi les boîtes à outils GUI disponibles pour Python, celles qui me semblent les plus enclines sont wxPython et Tkinter; mais je ne veux pas coder toute l'interface graphique par moi-même tout le temps.
Existe-t-il de bons IDE GUI pour ces boîtes à outils? Il n'a pas besoin d'être gratuit ou open source.
Je ne parlerai que de WxPython car c'est la seule boîte à outils avec laquelle j'ai de l'expérience. TkInter est agréable pour écrire de petits programmes (alors il ne nécessite pas de concepteur graphique), mais n'est pas vraiment approprié pour le développement d'applications volumineuses.
wxFormBuilder est vraiment bon: il génère des fichiers .XRC
que vous devez charger dans votre programme, et il peut générer des fichiers .py
en les sous-classant lorsque vous les utilisez.
DialogBlocks et wxDesigner sont deux logiciels commerciaux qui peuvent générer directement du code Python. Je n'ai pas beaucoup testé ces derniers à cause de leur prix.
Après avoir essayé tout cela, j'ai réalisé qu'ils avaient tous des défauts et que rien n'est mieux que d'écrire simplement l'interface graphique dans un éditeur. Le problème est la courbe d'apprentissage étendue. Mais alors vous serez beaucoup plus rapide et votre code sera beaucoup plus flexible que lors de l'utilisation d'un concepteur graphique.
Jetez un oeil à ce liste des principales applications écrit avec wxPython. Vous verrez probablement qu'aucun d'entre eux n'utilise un GUI Designer, il doit y avoir une raison à cela.
Vous comprenez alors que gs a raison de dire que vous passez à PyQt ou que vous écrivez votre application à la main. J'ai jeté un œil à Qt Designer dans le passé et j'ai pensé que c'était ce dont j'avais besoin. Malheureusement, PyQt a certaines restrictions de licence.
Cela peut ne pas répondre directement à votre question, mais j'ai choisi PyQt car il n'y avait pas de bons concepteurs d'interface utilisateur pour wxPython.
Apparemment, vous écrivez vos interfaces graphiques à la main ou passez à PyQt.
Parce que Nokia et Riverbankcomputing ne pouvaient s'entendre sur une solution LGPL, Nokia a décidé de construire ses propres liaisons: PySide .
Boa Constructor a un générateur d'interface graphique WxPython.
J'utilise xrced (livré avec wxPython). L'interface graphique est définie dans des fichiers xml, vous avez un fichier généré automatiquement python qui automatise une certaine initialisation, puis vous sous-classez ces classes générées automatiquement et effectuez le reste de l'initialisation à la main. Je trouve que c'est une bonne façon de mélanger l'élégance du code GUI écrit à la main avec la facilité de génération de code GUI.
Pour le code que j'utilise WingIDE , il est utile d'avoir un bon débogueur et une bonne exécution du code source lorsque l'on traite avec de grandes bibliothèques (ou frameworks si vous voulez) comme wxPython.
Si vous voulez plus d'automatisation (et donc un code plus laid) essayez la dernière version de Boa , il y a quelques jolis screencasts d'introduction pour cela à ShowMeDo.com
Essayez VisualWx . Je pense que le concepteur GUI est très bon; cependant le IDE est assez rudimentaire (pas de complétion de code, débogage, etc.). Mon modèle de travail est d'avoir VisualWx et un bon éditeur comme Komodo Edit/Netbeans/etc. ouvert en même temps et basculez entre eux si nécessaire.
J'utilise Eclipse avec PyDev comme mon Python IDE (Ce qui n'est probablement pas la meilleure solution là-bas, mais c'est assez décent))
Pour le développement de l'interface graphique, j'ai utilisé wxGlade pour un projet de taille moyenne et je l'ai trouvé assez facile à utiliser, vous avez compris les concepts de WxPython. La génération XML est très utile pour séparer la conception graphique réelle de la logique du programme.
Tous ces éléments sont gratuits.
J'ai utilisé wxGlade pour quelques applications critiques. Si vous êtes un peu faible en wx, cela peut être difficile, mais une fois que vous vous y êtes habitué, c'est un excellent outil.
Pas vraiment une interface graphique IDE mais cela vous conduit à définir des interfaces graphiques Tkinter dans un fichier JSON: https://github.com/tmetsch/pytkgen