Tcl/Tk : Introduction
Anne Possoz
Table of Contents
Tcl/Tk : Introduction
Tcl et Tk forment ensemble un système de programmation pour des applications avec interfaces graphiques [GUI: graphical user interface].
Tcl et Tk ont été conçus et implémentés et par John Ousterhout, de l'université de Californie, Berkeley et qui travaille aujourd'hui chez Sun.
Tcl [Tool command language], prononcez tickle, est un langage de commandes au même titre que Bourne shell, C shell, Korn shell et Perl. Ce langage a l'avantage d'être extensible. Une librairie contient l'ensemble des commandes, écrites en C, qui constitue le noyau de Tcl ainsi que l'interpréteur de commandes.
Tk [Toolkit] est l'extension de Tcl pour la partie application graphique.
A l'aide de l'exécutable wish [windowing shell], il est possible d'écrire des applications graphiques pour X11 sous la simple forme de scripts. Les avantages de cet ensemble Tcl/Tk peuvent être résumés comme suit:
- syntaxe simple et richesse des commandes de base
- pas de compilation nécessaire (scripts interprétés)
- outils de haut niveau pour la partie graphique (de nombreux widgets sont inclus dans Tk)
- extensibilité: il est possible d'écrire de nouvelles commandes en C et de les ajouter à la librairie (n'est vraiment utile que si une procédure est hautement consommatrice en temps cpu)
- il existe déjà de nombreuses extensions disponibles sur le réseau
Créer un fichier dont la première ligne est
#!/logiciels/public/Tcl/bin/wish
(attention au maximum de 32 caractères que peut contenir cette ligne à cause de la commande exec de certains des systèmes d'exploitation unix, par exemple HP-ux)
Ajouter progressivement des lignes à ce fichier et le mettre en mode exécutable. Exécuter ce fichier en modifiant pas à pas ce que l'on souhaite. La visualisation simultanée aidera grandement à concevoir la partie graphique avec la présentation souhaitée.
Il est aussi possible d'appeler interactivement wish et de taper les commandes successivement. L'exécution d'un script déjà préparé se fait à l'aide de la commande source, à l'intérieur de wish.
Qu'est wish? Un simple programme qui contient une boucle lecture-évaluation-écriture.
En accompagnement de ce cours, je conseille les outils interactifs suivants:
- /logiciels/public/Tcl/share/demos/tk/widget: un programme écrit en Tcl et qui est fournit avec la distribution de Tk; il permet de visualiser un grand nombre des possibilités de Tcl/Tk.
- tclhelp: un programme écrit en Tcl/Tk qui permet d'accéder aux man-pages de Tcl/Tk avec recherche par mots clefs (existe pour Tk3.6 et Tk4)
- tkman: encore un outil écrit en Tcl/Tk qui permet de lire les man-pages avec convivialité, notamment la recherche de mots à l'intérieur d'une man-page et, depuis la version 1.7, permet aussi la recherche par mots entre les man-pages à l'aide de glimpse.
Et pour compléter
- Tcl/Tk Reference Guide, petit aide-mémoire indispensable, qui se trouve sous:
/logiciels/public/Tcl/share/doc/tkrefguide.ps
- Une copie du livre de Brent Welch (qui a largement servi d'inspiration à ces notes et qui est épais) qui se trouve sous:
/logiciels/public/Tcl/share/doc/tkbook.ps.gz
Il est à noter que cette version n'est pas aussi complète que le livre et qu'elle n'a pas d'index. Il peut donc être recommandé d'acheter le livre (librairie Ellipse à Lausanne).
Les conventions de ce document sont basées sur celles utilisées dans les livres de référence.
- Lorsque vous tapez interactivement une commande sous wish, le résultat retourné par cette commande sera précédé de =>
- Lorsqu'un argument est optionnel pour une commande, il est entouré de "?" (par exemple ?argn?)
- Des mots anglais sont souvent gardés dans ce document pour diminuer la confusion
- Les crochets [ ] dans le texte sont généralement utilisés pour mettre l'équivalent anglais d'un mot traduit en français
- Dans les exemples, les accolades { } sont souvent ajoutées alors qu'elles ne sont pas nécessaires mais parce que cela augmente la lisibilité.
Dans le courant de l'année 1995, Tk a été entièrement revu et certaines commandes sont aujourd'hui incompatibles entre les deux versions. Progressivement les extensions disponibles sont aussi mises à jour afin d'être compatibles avec cette nouvelle version de Tcl/Tk.
Pour éviter toute confusion et incohérence,,
- tout ce qui concerne l'ancienne version de Tcl/Tk (tcl7.3 et tk3.6) se trouve dans le répertoire
/logiciels/public/tcl
et disparaîtra de la distribution EPFL d'ici quelques mois (plus rien n'y a été mis à jour depuis l'été 1995.
- tout ce qui concerne la nouvelle version de Tcl/Tk (tcl7.4 et tk4.0) se trouve dans le répertoire
/logiciels/public/Tcl
et seul ce qui concerne cette version est aujourd'hui supporté à l'EPFL.