Tk | |
![]() | |
Développeurs | Tcl Core Team et al. |
---|---|
Dernière version | [+/-] |
Environnement | Multiplate-forme |
Type | Bibliothèque d'interface graphique |
Licence | BSD |
Site Web | http://www.tcl.tk/ |
modifier |
Tk est une bibliothèque d'interfaces graphiques flexible, facile à apprendre, multiplate-forme et extensible. Conçu à l'origine pour un langage de script inventé par John Ousterhout et connu sous le nom de Tcl, il s'interface aujourd'hui avec d'autres langages tels que Perl, Python, Ruby, Lua, Common Lisp, REXX, Ada, Prolog, OCaml, R ou APL.
Tk existe aussi pour les navigateurs web sous la forme d'un plugin, Tcl plugin, qui permet d'exécuter des tclets (applets écrits en Tcl-Tk).
Tk propose nativement une collection de composants d'interface graphique (widgets) :
|
|
Chaque widget possède des propriétés modifiables selon le type (taille, relief, couleur, contenu, état, événement).
À la différence d'un programme en ligne de commande où l'interaction avec l'utilisateur est séquentielle, l'interface graphique fait intervenir la notion de programmation événementielle avec une autre logique. À tout moment, chaque widget est susceptible d'être affecté par l'action de l'utilisateur (l'événement). Il existe des événements simples (clic de souris sur un bouton, saisie au clavier dans un champ) et des événements plus complexes (navigation dans un menu ou une liste déroulante).
À chaque widget est attaché par défaut un certain nombre de réponses automatiques à des événements. Celles-ci correspondent à une gestion des événements de bas niveau où le programmeur n'a que très peu à intervenir. Une boucle événementielle les prend en charge et les répartit.
Ensuite, par l'intermédiaire de l'option -command
, on peut lier un widget à un appel de procédure ou une commande extérieure (callback). Si l'on souhaite associer à un widget une réponse particulière non définie par défaut, Tcl-Tk dispose d'un mécanisme très flexible grâce à la commande bind
.
Pour contrôler la dimension et agencer graphiquement les widgets, il existe trois gestionnaires de géométrie :
Tant qu’un widget n’est pas associé à un gestionnaire de géométrie, il n’apparaît pas à l'écran.