“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 164 — #174
i
i
i
i
i
i
i
i
164
3
• Techniques de programmation déclarative
– Pas de colle. Le gadget garde sa taille naturelle et il est centré dans l’espace qui
lui est donné, horizontalement et verticalement.
– glue:nswe colle aux quatre bords et s’étend pour prendre tout l’espace qui lui
est donné, horizontalement et verticalement.
– glue:we colle horizontalement gauche et droite et s’étend pour prendre tout
l’espace horizontal. Verticalement, le gadget ne s’étend pas mais reste centré
dans l’espace qui lui est donné.
– glue:w colle à gauche et ne s’étend pas.
– glue:wns colle verticalement en haut et en bas, s’étend verticalement pour
prendre tout l’espace vertical, et colle à gauche sans s’étendre horizontalement.
Le chargement du module QTk
La première étape dans la construction d’une interface graphique est le chargement
et l’édition des liens du module QTk dans le système. Comme QTk fait partie de la
Mozart Standard Library (la bibliothèque standard), il suffit de connaître son chemin
dans l’arborescence de la bibliothèque. Nous le chargeons avec la commande suivante :
declare
[QTk]={Module.link [´x-oz ://system/wp/QTk.ozf´]}
(Dans le Labo interactif, il est chargé automatiquement si on en a besoin pour l’exécution d’un exemple.) Maintenant que les liens de QTk sont édités, nous pouvons
l’utiliser pour construire des interfaces selon les spécifications de la section précédente.
La construction de l’interface
Le module QTk a une fonction QTk.build qui prend une spécification d’interface,
qui est un enregistrement imbriqué de gadgets logiciels, et construit une fenêtre avec
ses gadgets. Voici une interface simple avec un bouton qui affiche ouille dans le
Browser chaque fois que le bouton est cliqué :
D=td(button(text:"Cliquez-moi"
action:proc {$} {Browse ouille} end))
W={QTk.build D} {W show}
L’enregistrement D doit toujours commencer avec td ou lr, même si la fenêtre n’a
qu’un gadget. QTk.build renvoie un objet W qui représente la fenêtre. Au début elle
est cachée. Elle peut être affichée ou cachée de nouveau avec les appels {W show} et
{W hide}. La figure 3.14 montre une spécification plus élaborée pour une interface
complète d’entrée/sortie de texte. La figure 3.15 montre l’interface. À première vue,
la spécification peut sembler compliquée, mais les apparences sont trompeuses : il y
Précédent

- 179/370

Suivant