IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Gooey transforme presque n'importe quel programme console Python en une application GUI complète
Et vous permet de vous concentrer sur la construction de programmes robustes et configurables

Le , par Anthony

84PARTAGES

20  0 
Transformez (presque) n'importe quel programme de console Python 3 en une application GUI en une seule ligne. Gooey convertit vos applications console en applications graphiques conviviales pour l'utilisateur final. Il vous permet de vous concentrer sur la construction de programmes robustes et configurables d'une manière familière, sans avoir à vous soucier de la manière dont ils seront présentés à l'utilisateur moyen et avec lesquels il interagira.

Pourquoi Gooey ?

Parce qu'autant nous aimons l'invite de commande, autant le reste du monde la considère comme une laide relique du début des années 80. De plus, la plupart du temps, les programmes ont besoin de faire plus qu'une seule chose, et cela implique de donner des options, ce qui signifiait auparavant soit construire une interface graphique, soit essayer d'expliquer comment fournir des arguments à une application console. Gooey a été conçu pour (espérons-le) résoudre ces problèmes. Il rend les programmes faciles à utiliser, et jolis à regarder.


A qui s'adresse-t-il ?

Si vous construisez des utilitaires pour vous-même, pour d'autres programmeurs, ou quelque chose qui produit un résultat que vous voulez capturer et envoyer vers une autre application console (par exemple *nix philosophy utils), Gooey n'est probablement pas l'outil qu'il vous faut. Cependant, si vous construisez des scripts de type "run and done", des scripts de type "around-the-office", des choses qui envoient des bits d'un point A à un point B, ou simplement quelque chose qui s'adresse à un non-programmeur, Gooey est l'outil parfait pour ce travail. Il vous permet de construire une application aussi complexe que vous le souhaitez, tout en bénéficiant gratuitement de l'interface graphique.


Instructions d'installation

La façon la plus simple d'installer Gooey est via pip.

Code : Sélectionner tout
pip install Gooey

Vous pouvez également installer Gooey en clonant le projet dans votre répertoire local :

Code : Sélectionner tout
git clone https://github.com/chriskiehl/Gooey.git

Exécuter setup.py.

Code : Sélectionner tout
python setup.py install

Comment fonctionne Gooey ?

Gooey est attaché à votre code via un simple décorateur sur n'importe quelle méthode contenant vos déclarations argparse (habituellement main).

Code : Sélectionner tout
1
2
3
4
@Gooey
def my_run_func():
  parser = ArgumentParser(...)
  # rest of code

Au moment de l'exécution, il analyse votre script Python pour y trouver toutes les références à ArgumentParser (l'ancien optparse n'est actuellement pas pris en charge). Ces références sont ensuite extraites, un component type leur est attribué en fonction de l'"action" qu'elles fournissent, et elles sont finalement utilisées pour assembler l'interface graphique.

Différents styles et fonctionnalités peuvent être configurés en passant des arguments au décorateur.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# options
@Gooey(advanced=Boolean,          # toggle whether to show advanced config or not 
       language=language_string,  # Translations configurable via json
       auto_start=True,           # skip config screens all together
       target=executable_cmd,     # Explicitly set the subprocess executable arguments
       program_name='name',       # Defaults to script name
       program_description,       # Defaults to ArgParse Description
       default_size=(610, 530),   # starting size of the GUI
       required_cols=1,           # number of columns in the "Required" section
       optional_cols=2,           # number of columns in the "Optional" section
       dump_build_config=False,   # Dump the JSON Gooey uses to configure itself
       load_build_config=None,    # Loads a JSON Gooey-generated configuration
       monospace_display=False)   # Uses a mono-spaced font in the output screen
)
def main():
  parser = ArgumentParser(...)
  # rest of code

Gooey fera de son mieux pour choisir les valeurs par défaut des widgets à afficher dans l'interface graphique. Cependant, si un réglage plus fin est souhaité, vous pouvez utiliser le substitut GooeyParser à la place d'ArgumentParser. Cela vous permet de contrôler quel widget s'affiche dans l'interface graphique.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
from gooey import Gooey, GooeyParser

@Gooey
def main():
  parser = GooeyParser(description="My Cool GUI Program!") 
  parser.add_argument('Filename', widget="FileChooser")
  parser.add_argument('Date', widget="DateChooser")
  ...

Exemples

Gooey a été téléchargé et installé ? Superbe ! Vous voulez le voir en action ? Rendez-vous sur le dépôt d'exemples pour télécharger quelques scripts d'exemple prêts à l'emploi. Ils vous donneront un aperçu rapide des différentes mises en page, widgets et fonctionnalités de Gooey.

Source : Gooey (GitHub)

Et vous ?

Que pensez-vous de Gooey et de ses fonctionnalités ?

Voir aussi

Python 3.12 : la dernière version apporte des modifications du langage et de la bibliothèque standard, elle comporte aussi une amélioration des messages d'erreur

Les organisateurs de la conférence africaine DjangoCon critiquent le manque de soutien de la Python Software Foundation dans une lettre ouverte

Le plan de travail pour la future version 3.13 de Python a été dévoilé, et vise la réduction d'au moins 50 % du temps passé dans l'interpréteur ainsi qu'une meilleure gestion de la mémoire

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Gambix
Futur Membre du Club https://www.developpez.com
Le 13/12/2023 à 7:59
Je ne sais pas quoi dire devant tant de vide.

C'est simplement une meta structure mêlée a son propre code.

Je pensais bêtement que ca allais auto générer l'interface. Et non pas quil fallait ajouter au code.

Je suis déçu... au final c'est du php ou autre structure mêlée.
0  0