|
|
L'écriture d'interface graphique en TCL/TKIl existe aujourd'hui de
nombreuses solutions pour écrire des programmes avec interface
graphique, des plus anciennes comme Athena ou Motif aux plus récentes
comme GTK (Gimp Toolkit) ou QT (du monde KDE), en passant par des librairies
plus exotiques comme Forms. Tcl/Tk qu'est ce que c'est ? Tcl, un acronyme
pour Tool Command Language, est souvent décrit comme un langage
de scripts, similaire au shell. Mais il s'agit en fait d'un véritable
langage de programmation interprété et comparable en fonctionnalités
à Perl. Tcl est étroitement
associé à un Toolkit Graphique dénommé Tk,
ce qui lui donne une dimension bien supérieure à celle d'un
simple langage de programmation. Cette librairie graphique connaît
un tel succès qu'elle est également disponible pour d'autres
langages comme Perl ou Python, et nous verrons plus loin comment on peut
l'utiliser avec du C/C++. Un même programme
peut donc tourner sans modification ni recompilation sur toutes les cibles.
C'est extrêmement important quand on travaille comme moi dans un
environnement hétérogène. Cela permet d'utiliser
Linux comme plate-forme de développement, travail pour lequel il
excelle, et de pouvoir également distribuer son travail sur Windows
ou Mac . Un petit exemple Comme il se doit,
pour démontrer les possibilités d'un langage de programmation,
nous allons commencer par un petit exemple : label .lab0 -text
"Bonjour tout le mondeTcl/Tk" Puis exécutons wish exemple1.tcl. Nous voyons apparaître la fenêtre : Voila, juste 3 lignes pour créer cette fenêtre ! Quelques explications:
chaque entité graphique (widget) est nommée de manière
hiérarchique : chaque parent contenant (visuellement) tous ses
enfants, la séparation s'effectuant par un point, le 1er point
représentant la fenêtre principale. Cela donne : Dans notre exemple,
nous avons donc créé un label Îlab0' et un bouton Îbou0',
tous deux situés dans la fenêtre principale en précisant
le texte affiché avec l'option -text. Dans le cas du bouton, nous
précisons l'action à effectuer avec l'option -command: dans
notre exemple Îexit', mais cela pourrait être un ensemble quelconque
de commandes Tcl. Les différents widgets Nous n'allons pas
dans cet article détailler le fonctionnement de chaque widget,
il existe pour cela de bons livres ainsi qu'une documentation très
conséquente. On peut notamment citer : Pour chaque cas,
le principe est le même : on crée le widget en lui précisant
les options voulues, puis on le Îplace' en utilisant un des trois pack,
place ou grid. En utilisant ainsi les widgets comme des briques élémentaires d'un jeu de lego, il est très facile et très rapide de créer des interfaces graphiques complètes. Développer, Débugger Tcl/Tk étant
un langage interprété, on gagne déjà une étape
par rapport au classique écrire-compiler-tester. De plus, on dispose
naturellement de quelques facilités sympathiques. Vous voyez que dynamiquement,
on peut changer la configuration des widgets, l'application continuant
de tourner. On peut de la même manière consulter et modifier
les variables, voire ajouter ou enlever des widgets. Bien qu'il soit très facile d'écrire une interface graphique avec Tk, il faut quand même l'écrire, et il est bien pratique d'avoir un builder d'interface pour créer et positionner visuellement les widgets. Si un tel builder n'existe pas en standard dans Tcl/Tk, il y a néanmoins une autre solution: vtcl. Vtcl est un builder
d'application, également écrit en Tcl, permettant en quelques
clics de créer son interface, de positionner les widgets, d'éditer
leurs caractéristiques, couleurs, reliefs, comportements, etc....
Vtcl permet même d'éditer le code de chaque fonction associée
aux widgets. Les Extensions Tk fournit tous les widgets de base et permet de les combiner. Mais il peut être intéressant de disposer de quelques objets plus évolués. Il existe pour ce faire de nombreuses extensions Tcl/Tk. On peut citer, parmi les plus connues, Tix, Incr Tcl, Blt, mais il y en a bien d'autres. Cependant, toutes ces extensions ont l'inconvénient de nécessiter une installation plus ou moins lourde, et pas forcément disponible sur toutes les plates-formes . Nous parlerons donc
plus en détails d'extensions réalisées en pur Tcl,
faciles à intégrer à vos applications : o Un arbre: semblable
à ce que l'on peut voir dans Windows Explorer, environ 10Ko de
code à intégrer pour pouvoir afficher ça. o Une combobox: c'est à dire une zone de saisie associée à un menu déroulant On peut trouver la
combobox à l'adresse suivante : o Un notebook : plusieurs onglets permettant d'afficher différentes pages alternativement . Il vous faudra rajouter 8Ko de code pour obtenir : On peut trouver le
widget notebook à l'adresse suivante : o Un sélecteur
de répertoire: au look identique au sélecteur de fichier
intégré à Tcl/Tk. Une procédure de seulement
9Ko : Tcl/Tk et le C/C++ Les langages interprétés possèdent de nombreux avantages ; malheureusement, ils ont également quelques inconvénients . En premier lieu, les sources sont forcement livrées avec l'application, ce qui peut poser problème. Ensuite, cela peut introduire certaines lenteurs. De plus, Tcl/Tk ne permet pas de créer des structures de données très complexes comme on peut le faire en C ou C++. Pas de panique,
il y a aussi une solution à tout cela : ET est vraiment très
simple à utiliser. Il permet d'utiliser à la fois les facilités
de Tcl/Tk pour les interfaces graphiques et les traitements des chaînes
de caractères, et la puissance du C là où elle est
nécessaire. La communauté des programmeurs Tcl est très active et de plus en plus de nouveaux logiciels apparaissent régulièrement. Alors, à vos claviers ... Daniel Roche
|
Tous les
articles en ligne sont sous licence FDL (Free Documentation Licence)
|
|||||||||||||||||||||||||||||||||||