TclTk - TP 1

\r

Prise de contact avec Tcl

\r\r

\rObjectif : familiarisation avec le langage interpreté tclsh.\r

  • À l’aide des commandes tcl *open*, *gets*, *puts*, affichez sur le fichier standard de sortie le contenu du fichier rgb.txt présent dans le répertoire /etc/X11/.\r\r
  • À l’aide des mêmes commandes tcl de gestion des fichiers, sauvez cette liste, sauf la première ligne, dans un fichier ordinaire de nom couleurs_X11.txt dans votre répertoire de travail.\r
  • Chargez ce fichier contenant la liste des couleurs (en traitant explicitement les éventuels problèmes d’existence ou de protection en lecture par la commande *file* ou *catch*) et initialisez à partir de celle-ci un tableau associatif à l’aide des commandes *scan* ou *regexp* en associant à chaque nom de couleur son code RVB, enfin affichez le résultat sur la sortie standard. Attention : prenez soin de normaliser les identifiants du tableau car il existe de nombreux doublons dans le fichier rgb.txt, vous pouvez par exemple supprimer tous les espaces quand ils existent (voir regsub) et mettre en majuscule la premiÚre lettre de chaque mot (voir string first et string toupper) ce qui vous permettra de déceler ces doublons.\r\r
  • Implantez une procédure qui prend le tableau des couleurs en paramètre et qui produit une liste des noms de couleurs (voir pour cela la commande *array*) triés par ordre alphabétique (cf *lsort*) et suivant un format d’affichage normalisé (par exemple : chaque mot est separé par un espace et commence par une majuscule, voir pour cela *string*).\r

\r\r

\r


\r

\r\r

Prise de contact avec Tk

\r

\rObjectif : utilisation des widgets sous wish.\r

  • découvrez les démonstrations accessibles à partir de l’application /usr/share/doc/tk8.5/examples/widget,\r\r
  • créez une fenetre (voir *wm*) contenant une zone graphique (voir *canvas*),\r
  • en vous inspirant de la démonstration \”A simple scrollable canvas\”, affichez des carrés à l’écran de la couleur de chaque entrée du fichier rgb.txt, en utilisant ce que vous avez fait au début du TP,\r
  • associez à cette zone graphique une barre de défilement (voir *scrollbar*),\r\r
  • associez au clic du bouton de gauche (voir *bind*) sur un carré l’affichage de la couleur dans un format lisible,\r
  • faites de ce premier programme un module (voir *source* et *namespace*) qui affiche une fenêtre modale (voir *grab* et *tkwait*) affichant les carrés de couleur ainsi que deux boutons (voir *button*) : Ok et Annuler, le premier bouton permettant de retourner la derniÚre valeur sélectionnée et fermant la fenêtre, le second fermant la fenêtre.\r\r