| Tcl-Tk | Mise à jour 12-2001 |
|
Tcl, après Bash, est un autre des shells de Linux. Il est plus puissant de par ses fonctionnalités intrinsèques, mais aussi par les extensions que l'on peut y adjoindre. La première extension, Tk, offre des objets réalisant une interface graphique : les widgets. Un widget peut être un bouton, une case à cocher, une zone de texte, etc ... La seconde, Mysql, fournit à Tcl la possibilité d'accéder à une base de données Mysql, au travers de fonctions supplémentaires. A l'aide de ces deux extensions, on peut s'attaquer à la réalisation d'applications de gestion, sans s'affronter au C ou au C++. Attention cependant, le manque d'outils efficaces pour le développement rend celui-ci un peu délicat (pas d'environnement graphique, pas de débogueur, ...). A noter que Tcl/tk existe aussi sous Windows.
Shell TCL Commande tcl. Il est globalement similaire au bash, pour ses fonctionnalités, bien que la syntaxe en soit fort différente. Outre le traitement des variables, des conditions, des boucles et des fonctions, on trouve aussi la fonction exec qui permet d'exécuter des commandes bash. Au plan de la gestion mémoire, les variables et fonctions définies sont globales; attention donc lors de l'enchaînement de plusieurs programmes. Pour pallier ceci il existe, comme dans d'autres langages, la notion de namespace. Ceci permet, dans une même application, de créer des espaces mémoire indépendants les uns des autres : une variable X dans le namespace A sera différente de la variable X dans le namespace B. Dans une approche de programmation structurée, ceci est très important car ouvrant la porte à la programmation modulaire, les modules n'empiétant pas les uns sur les autres. Un exemple d'utilisation en est donné par l'application "Bibliothèque" décrite plus loin. Les widgets Tk Tcl muni de l'extension s'appelle par la commande wish. La programmation avec les widgets consiste (comme sous Windows) à écrire ou lire leurs propriétés et intercepter leurs événements pour déclencher des traitements. Le premier d'entre eux est le toplevel, qui définit la fenêtre du programme. Les autres (boutons, menus, cadres, cases à cocher, ...) sont inclus dans le toplevel. Ainsi, si le toplevel s'appelle .w, un bouton pourra s'appeler .w.bt01. Un point important dans l'utilisation des widgets réside dans la gestion de la géométrie, c'est-à-dire la disposition des widgets les uns par rapport aux autres. Il existe 3 méthodes de gestion :
L'extension Mysql fournit des fonctions donnant accès à la base de données Mysql.
|
Les exemples présentés ci-dessous exploitent plusieurs fonctionnalités de Tcl. Les premiers sont relativement simples; le dernier constitue une application plus complète de gestion de bibliothèque (base Mysql, menus, ...).
Ce jeu de lettres transforme un mot quelconque en "javanais" en glissant entre une voyelle et une consonne la syllabe AV. Pour ceci, il fait appel à :
Ce jeu présente 9 cases sous forme de tableau 3 x 3. Chaque case (en fait un bouton) est soit verte soit rouge. En cliquant sur une case, la couleur de ses voisines change. Le but est d'obtenir toutes les cases vertes sauf la centrale. Les fonctionnalités suivantes sont nécessaires :
Le programme affiche un graphique offrant un bel aspect visuel. Il utilise principalement :
Ce programme constitue le menu de l'application qui permet d'appeler les exemples précédemment décrits. On utilise pour ceci les fonctions suivantes :
Ce logiciel a pour but de gérer une bibliothèque personnelle : la base de données est simple et toutes les fonctions ne sont pas encore implémentées. Cependant, elle est prétexte à une écriture structurée des programmes :
Le menu (bibmnu) L'écran principal de l'application donne accès à un menu "Fichier", composé des options "Auteurs", "Catégories" et "Quitter"; cette dernière comporte le raccourci clavier Alt-q. La gestion des auteurs Ce programme affiche dans une liste déroulante la liste des auteurs existants dans la base. Des boutons radio permettent de choisir l'ordre de tri (par n° ou par ordre alphabétique). Des boutons au bas de l'écran donnent accès à la création, la modification, la suppression ou la sortie du programme. La partie technique la plus ardue concerne la liste déroulante composée de :
La gestion des catégories de livres Le fonctionnement est strictement identique à l'option précédente. Il est surtout là pour montrer l'analogie de forme entre différents programmes, tout en préservant pour chacun, à l'aide des namespaces, son espace d'exécution. |
Fourni avec la plupart des distributions sous forme de tar.gz
Fourni avec la plupart des distributions sous forme de tar.gz Nécessite la bibliothèque Xfree86-devel. Un sous-répertoire démos contient de nombreux exemples d'applications.
Souvent fourni avec les distributions en rpm. Voir le site
Extension Mysql à Tcl. Voir le site pour rechercher les extensions disponibles par langage. |