Tcl/Tk : exemples
Anne Possoz
Table of Contents
Tcl/Tk : exemples
Il existe aujourd'hui un grand nombre d'applications écrites à l'aide de Tcl/Tk et qui peuvent être très utiles dans la vie quotidienne d'un utilisateur unix.
Celles qui sont actuellement disponibles pour tous à l'EPFL sont:
- tkman: le plus confotable outil que je connaisse pour lire les man pages.
Pour l'utiliser, il vous suffit:
- d'avoir définit votre variable d'environnement MANPATH avec tous les paths qui vous intéressent
- d'appeler tkman (il se trouve dans /logiciels/public/Tcl/bin/tkman)
- de taper tkman dans la fenêtre du haut puis d'appuyer sur le bouton man
Il vous permet:
- de sélectionner les groupes de man pages que vous souhaitez prendre en compte (voir sous le menu déroulant paths)
- de faire une recherche de mot à l'intérieur d'un man donné (voir le bas de la fenêtre)
- de chercher tous les mans qui contiennent un mot donné (taper ce mot dans la fenêtre du haut et appuyer sur glimpse)
- exmh : outil de messagerie très puissant et complèt. Voir la documentation sous
http://slwww.epfl.ch/SIC/SL/logiciels/exmh.html
- tclhelp: outil très utile pour ceux qui écrivent du code Tcl/Tk; il donne une bonne documentation de toutes les commandes Tcl et Tk, avec souvent plus de renseignement que les man pages.
Ces outils sont écrits entièrement en Tcl/Tk et donne une bonne idée de la complexité de ce qui peut être fait à l'aide de Tcl/Tk. Puisqu'il s'agit de scripts, vous pouvez directement lire les sources et éventuellement vous en inspirer. Les librairies des scripts qui vont avec exmh sont dans: /logiciels/public/Tcl/share/lib/exmh
Lors de la publication de son livre, Brent Welch utilise de nombreux exemples. Il a aussi eu la gentillesse de les mettre dans un fichier tar qui nous permet donc de les utiliser et manipuler à notre guise, tout en respectant le Copyright.
Pour y accéder, ils se trouvent tous dans le répertoire:
/logiciels/public/Tcl/share/demos/WELCHBOOK
Le but du présent paragraphe est de préciser succintement ce qui peut être appris à l'aide de ces différents exemples.
Il s'agit d'un simple petit interface qui permet d'exécuter une commande unix et de visualiser le résultat de la commande, avec interruption possible. Il peut être utiliser pour un make, par exemple.
Cet exemple permet d'apprendre de façon concrète:
- l'utilisation des boutons, avec affichage variable, et leurs actions
- l'utilisation d'un entry widget, d'un label widget et d'un text widget
- le packing
- l'action conjuguée d'un text widget et d'un scrollbar widget
- la notion de binding, ici pour <Return> et <Control-c>
- la notion de focus
- la notion d'ouverture de fichier avec pipeline
- la commande fileevent qui permet d'associer une procédure avec un fichier; ainsi, dans l'exemple considéré, dès que une nouvelle ligne apparaît dans le fichier (dans ce cas, un pipeline) comme résultat de la commande lancée par l'utilisateur, une procédure sera exécutée
Trois petits exercices peuvent être proposés pour améliorer cette commande
- ajouter un bouton à gauche de Run it qui permettra d'effacer la commande précédemment tapée dans le contenu de l'entrée
- permettre les wilds characters à la unix pour la commande (par exemple, ls -l *)
- empêcher tout écriture possible dans la partie résultat de la commande
Il s'agit d'un petit browser qui permet d'exécuter par boutons tous les exemples mis à disposition par Brent Welch. On apprendra ici à construire des menus en cascade et une autre utilisation d'un text widget.