Afficher une fenêtre au premier plan en Tk

Depuis quelques mois, je développe une application graphique en OCaml, avec le module Labltk (Tk pour OCaml).

Récemment, j’avais un besoin précis. J’avais deux fenêtres (A et B) crées et ouvertes. En cliquant sur un bouton situé sur la fenêtre A, je voulais faire apparaitre la fenêtre B, c’est-à-dire, la faire passer au premier plan.

J’ai cherché longuement sur Internet, et relu maintes et maintes fois la documentation de Tk, jusqu’à trouver une solution au problème. Je tiens à la faire partager.

La solutions consiste à appeler la commande wm withdraw puis la commande wm deiconify sur le toplevel de la fenêtre B. En OCaml, cela se matérialise de la façon suivante :

Wm.withdraw toplevel;
Wm.deiconify toplevel;

La commande withdraw a pour effet de faire disparaitre la fenêtre. Quant à la commande deiconify, elle permet de ré-afficher la fenêtre (en plus de la faire sortir d’un éventuel mode iconifié).

J’ai testé cette solution avec succès avec les gestionnaires de fenêtres ion3 et jwm (Linux/Xorg).

Mots-clefs : ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>