Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| dev:python:pygtk:start [2015/06/05 12:48] – yoann | dev:python:pygtk:start [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| * Le fichier .glade décrit l' | * Le fichier .glade décrit l' | ||
| - | On peut générer facilement le fichier .glade via l' | + | On peut générer facilement le fichier .glade via l' |
| <code bash> | <code bash> | ||
| Ligne 20: | Ligne 20: | ||
| * Les conteneurs permettent d' | * Les conteneurs permettent d' | ||
| - | Un widget ne fait aucune action, il émet simplement un signal lorsqu' | + | Un widget ne fait aucune action, il émet simplement un signal lorsqu' |
| - | Pour définir | + | ===== 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' | ||
| <code python> | <code python> | ||
| handler_id = mon_widget.connect(sig_name, | handler_id = mon_widget.connect(sig_name, | ||
| + | </ | ||
| + | < | ||
| + | La méthode '' | ||
| + | </ | ||
| + | |||
| + | Où func est la fonction de rappel de la forme: | ||
| + | <code python> | ||
| + | def func(widget, | ||
| + | </ | ||
| + | |||
| + | Pour une classe on définira une méthode: | ||
| + | |||
| + | <code python> | ||
| + | def func(self, widget, data) | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | La signature de la fonction de rappel donnée ici est générale, elle pourra être différente selon le widget utilisé. | ||
| + | </ | ||
| + | |||
| + | |||
| + | Les étapes générales d' | ||
| + | * Instancier les widgets en invoquant les fonctions gtk.* | ||
| + | * 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' | ||
| + | * Lancer l’exécution de la boucle d’écoute des événements par l' | ||
| + | |||
| + | |||
| + | ===== PyGTK en mode interprété ===== | ||
| + | |||
| + | Certaines spécificité liées aux objets graphiques rendent difficiles l’exécution de ce type de code en mode interprété. Pour cela, certains interpréteurs tels que IPython proposent un mode spécifique permettant d' | ||
| + | |||
| + | Pour Ipython, depuis le prompt de l’interpréteur, | ||
| + | < | ||
| + | %gui gtk | ||
| + | </ | ||
| + | |||
| + | Ci dessous un exemple de code tapé en mode interactif: | ||
| + | <code python> | ||
| + | %gui gtk | ||
| + | import gtk | ||
| + | w = gtk.Window(gtk.WINDOW_TOPLEVEL) | ||
| + | w.set_title(" | ||
| + | txt= gtk.Label(" | ||
| + | w.add(txt) | ||
| + | txt.set_visible(True) | ||
| + | w.set_visible(True) | ||
| </ | </ | ||
| - | La méthode '' | ||
| - | Les étapes générales d' | ||
| - | * Appel des fonctions gtk.* permettant d' | ||
| - | * Connexion des signaux souhaités aux contrôleurs appropriés. | ||
| - | * Définition des attributs des widgets | ||
| - | * Agencement des widgets via les conteneurs | ||
| - | * Affichage des widget avec l' | ||
| Ligne 41: | Ligne 86: | ||
| * http:// | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||