Gooey : transformer presque n’importe quel programme Python en ligne de commande en application GUI complète
(github.com/chriskiehl)Transformer des programmes console Python en applications GUI avec Gooey
- Gooey est un outil qui transforme les programmes console Python 3 en applications GUI conviviales.
- En proposant une GUI à la place de l’invite de commande, il permet de rendre les programmes plus faciles à utiliser et plus esthétiques.
- Il est utile pour créer des scripts destinés à des non-programmeurs ou des utilitaires pour des tâches comme le transfert de données.
Fonctionnement de Gooey
- Gooey s’intègre au code en ajoutant un décorateur à une méthode contenant une déclaration
argparse. - À l’exécution, il analyse le script Python, extrait la référence à
ArgumentParseret assemble la GUI. GooeyParserpermet de contrôler plus finement les widgets affichés dans l’interface.
Internationalisation de Gooey
- Gooey peut être facilement traduit dans différentes langues, et inclut actuellement plus de 18 traductions.
- Ajouter la prise en charge d’une nouvelle langue est aussi simple que d’ajouter des paires clé/valeur dans le répertoire
gooey/languages/.
Configuration globale de Gooey
- L’apparence générale et le ressenti de Gooey peuvent être personnalisés en passant des arguments au décorateur.
- Divers éléments peuvent être personnalisés, notamment l’encodage, la langue, la taille de démarrage et les paramètres de police.
Personnalisation de la mise en page
- Gooey propose une mise en page flexible grâce à quelques personnalisations simples.
- Il offre différentes options de disposition, comme l’affichage ou non d’une barre latérale, ou encore l’utilisation de groupes d’onglets.
Modes d’exécution de Gooey
- Gooey propose plusieurs modes d’affichage permettant d’adapter la mise en page au type de contenu et au niveau d’expérience de l’utilisateur.
- Les modes avancé, basique et sans configuration permettent de fournir une GUI adaptée à différents besoins.
Menus de Gooey
- Il est possible d’ajouter des groupes de menus et des éléments personnalisés à la barre de menus de Gooey.
- Différents types d’options de menu sont pris en charge pour fournir des informations sur le programme, des boîtes de dialogue de message, des liens, etc.
Validation dynamique de Gooey
- Avant de transmettre les entrées utilisateur au programme, Gooey peut exécuter de manière optionnelle une validation préalable afin de vérifier que tous les arguments sont valides.
Événements du cycle de vie et contrôle de l’interface
- Gooey fournit des hooks de cycle de vie permettant d’effectuer des actions de suivi supplémentaires en cas d’exécution réussie ou d’échec du programme, ainsi que de contrôler l’état actuel de l’interface.
Affichage de la progression
- Gooey peut mettre à jour l’état de la barre de progression à partir de mises à jour textuelles de progression.
- Des expressions régulières et des expressions d’évaluation personnalisées permettent de transmettre les informations de progression à Gooey.
Personnalisation des icônes
- Gooey permet de remplacer les icônes par défaut par des images/icônes personnalisées.
- L’argument
image_dirpermet de spécifier un répertoire d’images personnalisé.
Packaging de Gooey
- Packager Gooey en fichier exécutable est très simple, et il est possible de regrouper l’application en exécutable prêt à l’emploi avec pyinstaller.
L’avis de GN⁺
L’élément le plus important de cet article est que Gooey permet de transformer facilement des programmes console Python en applications GUI. Cela peut rendre les programmes plus familiers et plus accessibles pour les utilisateurs non programmeurs, ce qui permet aux développeurs de se concentrer sur la logique sans se soucier de l’interface utilisateur. Les nombreux paramètres et options de personnalisation de Gooey en font un choix attrayant pour les développeurs, et cela peut contribuer de manière significative à abaisser la barrière d’entrée du développement d’interfaces GUI.
1 commentaires
Avis Hacker News
Explication du développeur à propos du projet Gooey
argparseétait un choix solide.argparse.argparsereste toutefois l’interface principale, faute de meilleure alternative évidente.Discussion sur la relation entre Gooey et
argparseargparseconvient aux tâches simples, mais beaucoup de CLI sont basées surClick, et il existe aussi des bibliothèques CLI populaires construites surClick.Clickn’est pas confirmée ; si l’outil est limité àargparse, l’expression « presque tous » n’est peut-être pas exacte.Liens vers d’anciennes discussions sur Gooey
Souhait que les systèmes d’exploitation et les shells puissent mieux exécuter les programmes
Présentation du framework Textual
Textual, qui permet de construire en Python, avec une API simple, des interfaces utilisateur fonctionnant dans le terminal et le navigateur web.Question sur une version GUI pour ffmpeg
Question sur la manière d’intégrer Gooey avec des outils CLI qui attendent une saisie utilisateur
Intérêt pour un outil qui convertit une GUI en CLI
Mention du concept de Naked Objects
Curiosité sur la capacité de Gooey à générer une application web