# \[python\] GTK: Gestion de sous-menu

**URL:** <https://www.debian-fr.org/t/python-gtk-gestion-de-sous-menu/57275>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 2:39 UTC](https://www.debian-fr.org/t/python-gtk-gestion-de-sous-menu/57275 "2016-02-21T14:39:48Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Février 21, 2016, 2:39 UTC](https://www.debian-fr.org/t/python-gtk-gestion-de-sous-menu/57275/1 "2016-02-21T14:39:48Z")

</div>

Bonjour, tout le monde …

Soit la class nommée WindowGlade, [dont le code source est pastebiné](http://paste.ubuntu.com/5679843/), appelée en tant que module dans un fichier principal !  
Cette class utilise un fichier Glade …

Dans le fichier principal, je créé un objet ainsi :

```auto
self.glade = WindowGlade()
# plusieurs attributions dynamique de variables
...
# call run
self.glade.run()
```

L’appel à la méthode ‘run’ appelle entres autres, la méthode ‘manage\_menu()’.

- Cette méthode gère les propriétés du menu principal, construit grâce au fichier glade.
- Elle gère aussi le sous-menu du menu ‘Nouveau’, ainsi que l’appel du menu contextuel.
- Dans le menu contextuel, est construit aussi un sous-menu, pour son propre item ‘Nouveau’.

Dans ces deux derniers cas, cela fait appel à la méthode ‘create\_submenu()’, qui créé donc le sous-menu adéquat, ainsi que les items nécessaires. Lors de la création de l’item, elle fait appel à la méthode ‘item\_submenu\_activate(self, widget, index)’. Le but principal est de retourner le focus, ainsi que la valeur ‘action’ dans le combo approprié.

Le problème se situe dans la gestion de cette méthode :

- lorsque la méthode ‘item\_submenu\_activate’ est appelée, pour l’item ‘Nouveau’ du menu principal, le widget correspondant est bien retourné et affiché par l’appel du print correspondant, du style ‘\<gtk.MenuItem object at 0xe80d20 (GtkMenuItem at 0xf88990)\>’, et donc le combo ‘action’ est activé et affiche la valeur correspondante.
- lorsque celle-ci est appelée, pour l’item ‘Nouveau’ du menu contextuel, le widget n’est pas retourné, rien n’est imprimé ; de fait, rien ne se passe au niveau du combo ‘action’.

Je ne comprends pas pourquoi, d’autant que je suis sûr que les items sont créés, puisqu’ils s’affichent lors de l’appel du menu contextuel !  
Quid ?  
Voilà, si quelqu’un pouvait m’aider à comprendre … ça serait sympa.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Février 21, 2016, 2:40 UTC](https://www.debian-fr.org/t/python-gtk-gestion-de-sous-menu/57275/2 "2016-02-21T14:40:28Z")

</div>

Bon, voici la [version actuelle](http://paste.ubuntu.com/5697526/) …  
Mais je me demande si mes propos sont clairs, ou trop compliqués - parce que c’est bien silencieux…  
si c’est le cas, n’hésitez pas à me l’avouer 😛

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Février 21, 2016, 2:42 UTC](https://www.debian-fr.org/t/python-gtk-gestion-de-sous-menu/57275/3 "2016-02-21T14:42:22Z")

</div>

Bon, déjà, je me suis rendu compte, il y a deux, trois jours, que deux widgets portaient le même nom «&nbsp;status-icon&nbsp;».  
(le GTK StatusIcon, et le menu lié à Status Icon.) ![:075](https://www.debian-fr.org/uploads/default/original/1X/660d70f9421e915a2561756e6d9f245d4f609347.gif "dequoi")

Mais cela ne règle pas mon problème de sous-menu du menu contextuel qui ne retourne rien. ![:119](https://www.debian-fr.org/uploads/default/original/1X/0287f377b0e103e172422ffbbe8c639fd3e12c9e.gif "vertige")

Voili, oivlou.
