Outils pour utilisateurs

Outils du site


dev:python:pygtk:start

Ceci est une ancienne révision du document !


du boot, pc rendu a Nathalie Barret. Pas de retour utilisateur. Fermeture ticket.

IHM pour python avec PyGTK

Présentation générale de la conception d'une application Python utilisant une IHM GTK

  • Les classes Python modélisent les données métier et intègrent les traitements.
  • Le fichier .glade décrit l'interface graphique et inclus le code python.

On peut générer facilement le fichier .glade via l'outil de conception d'interface graphique Glade:

$ sudo apt-get install glade-gtk2

Widgets GTK

Les widgets sont les composants de base permettant de concevoir l'interface graphique de l'application. Cette IHM peut se voir comme un amas hiérarchisé de Widgets:

  • Les Widgets de niveau supérieur sont des conteneurs globaux. Ils ne peuvent pas être contenus dans d'autres widgets
  • Les conteneurs permettent d'organiser/agencer les autres Widgets entre eux.

Un widget ne fait aucune action, il émet simplement un signal lorsqu'un événement se produit.

Signaux et fonctions de rappel

Dans un toolkit fonctionnant en programmation événementielle (tel que GTK+), la fonction principale s’exécutant est en sommeil jusqu’à ce qu'un événement se produise. A cet instant le contrôle est transmis à la fonction appropriée. Cette transmission du contrôle est mise en œuvre grâce au principe des signaux. Certains signaux sont hérités d'autres sont spécifiques au Widget. Lorsqu'un événement se produit, widget émet un signal (ex: bouton pressé) mais aucune action n'est prédéfinie. Pour qu'une action puisse se produire, il faut correctement paramétrer le controleur de signal (ou signal handler), qui se charge de capter le signal émit et d’exécuter la bonne fonction. Les Widgets héritent de la méthode GObject.connect qui permet de correctement paramétrer le controleur de signal. Ci-dessous la signature de la méthode:

handler_id = mon_widget.connect(sig_name, func, func_data)
La méthode GObject.connect retourne un identifiant qui pourra être utilisé pour déconnecter ou désactiver temporairement le contrôleur.

Les étapes générales d'utilisation de pygtk se résument à:

  • Instancier les widgets
  • Affecter des fonctions de rappel aux signaux souhaités.
  • Définition des attributs des widgets.
  • Agencement des widgets grâce aux conteneurs.
  • Affichage des widget via l'appel de gtk.Widget.show()
  • Lancer l’exécution de la boucle d’écoute des événements par l'appel à gtk.main()

Références

dev/python/pygtk/start.1439210131.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)