• Accueil
  • > Archives pour novembre 2010

Archive pour novembre 2010

Afficher une fenêtre au premier plan en Tk

Samedi 13 novembre 2010

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).