Tk (informatique)


Tk (informatique)
Page d'aide sur l'homonymie Pour les articles homonymes, voir TK.
Tk
Tcl.svg
Développeurs Tcl Core Team et al.
Dernière version 8.5.9 (31 août 2010) [+/-]
Environnement Multiplate-forme
Type Bibliothèque d'interface graphique
Licence BSD
Site web http://www.tcl.tk/

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).

Sommaire

Les widgets

Tk propose nativement une collection de composants d'interface graphique (widgets) :

  • label (étiquette)
  • entry (champ de texte en entrée)
  • listbox (liste défilante)
  • tk_optionMenu (liste)
  • menu (menu déroulant)
  • menubutton (menu déroulant à partir d'un bouton)
  • scale (curseur horizontal et vertical)
  • spinbox (zone de sélection numérique)
  • frame (cadre)
  • labelframe (cadre avec titre)
  • scrollbar (barre de défilement)
  • panedwindow (panneau coulissant)
  • text (conteneur hypertexte évolué)
  • canvas (conteneur d'objets graphiques 2D évolué)
  • tk_chooseColor (sélecteur de couleur)
  • tk_chooseDirectory (sélecteur de répertoire)
  • tk_dialog (boîte de dialogue modale)
  • tk_getOpenFile (sélecteur de fichier)
  • tk_messageBox (boîte de message)
  • tk_popup (menu contextuel)

Chaque widget possède des propriétés modifiables selon le type (taille, relief, couleur, contenu, état, événement).

Gestion de la géométrie

Pour contrôler la dimension et agencer graphiquement les widgets, il existe trois gestionnaires de géométrie :

  • grid (dispose les widget selon une grille)
  • pack (empile ou dispose côte-à-côte les widgets selon un ordre relatif)
  • place (dispose les widgets de manière absolue)

Tant qu’un widget n’est pas associé à un gestionnaire de géométrie, il n’apparaît pas à l'écran.

Gestion des événements

À 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.

Exemples

  • Un simple bouton bleu avec écriture blanche associé à une commande pour quitter.
pack [button .b -text Quitter -bg blue -fg white -command exit]
  • Un message d'avertissement avec tk_messageBox.
tk_messageBox -message "Vous devez entrer une valeur entre 1 et 100" \
              -type ok -icon warning
  • Une horloge digitale en 6 lignes de code.
proc every {t script} {
 eval $script
 after $t [list every $t $script]
}
pack [label .horloge -textvariable time -font {Lucida 18}]
every 1000 {set ::time [clock format [clock seconds] -format %H:%M:%S]}
  • Affichage de caractères unicode grecs, russes, hébreux, arabes, chinois et japonais dans un widget text.
package require Tk
bind all <Escape> {exit}
 
wm title . "Exemple Unicode"
pack [text .t -font {Arial 14}]
.t insert end "
Grec\t\t \u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC\u03B3\u03BB\u03CE\u03C3\u03C3\u03B1
Russe\t\t \u0420\u0443\u0441\u0441\u043A\u0438\u0439\u044F\u0437\u044B\u043A
Hebreu\t\t \u05DD\u05D9\u05DC\u05E9\u05D5\u05E8\u05D9\u05DC\u05D9\u05D0\u05E8\u05E9\u05D9
Arabe\t\t \uFE94\uFEF4\uFE91\uFEAE\uFECC\uFEDF\uFE8D\uFE94\uFEE4\uFEE0\uFEDC\uFEDF\uFE8D
Chinois traditionnel\t \u4E2D\u570B\u7684\u6F22\u5B57
Japonais\t\t \u65E5\u672C\u8A9E\u306E\u3072\u3089\u304C\u306A,\u6F22\u5B57\u3068\u30AB\u30BF\u30AB\u30CA
"
  • Utilisation du widget canvas pour afficher un polygone dont le nombre de côtés varie interactivement à l'aide d'un curseur horizontal.
package require Tk
bind all <Escape> {exit}
 
proc AffichePolygone {w x y n} {
 set r 140; set angle [expr {6.28318/$n}]
 for {set i 0} {$i < $n} {incr i} {
   lappend l [expr {cos($angle*$i)*$r+$x}] [expr {sin($angle*$i)*$r+$y}]
 }
 $w delete all
 $w create polygon $l -outline black -width 1 -fill blue
}
 
set edge 3
wm title . "Polygone"
pack [canvas .c -background white -width 320 -height 320]
pack [scale .sc -from 1 -to 12 -length 240 -resolution 1 \
           -orient horiz -bd 1 -showvalue true -variable edge \
           -command {AffichePolygone .c 160 160}]

Bibliothèque standard

Tk dispose d'une bibliothèque standard appelée Tklib (le pendant pour Tcl étant la Tcllib) exclusivement écrite en Tcl. Elle contient divers modules pour la représentation graphique de données, la gestion et l'affichage de textes, les tables, les champs d'entrée spécifiques ainsi que les BWidget (une bibliothèque de widgets de haut niveau).

Histoire de Tk

John Ousterhout a commencé à concevoir cette IHM à la fin de l'année 1988 parallèlement au développement de Tcl. Tk a subi l'influence du système HyperCard d'Apple. Il a été développé en C et était basé sur Xlib en fournissant une dizaine de composants IHM appelés widgets (contraction de window gadget). À cette époque, ils ne fonctionnaient que sous UNIX.

La combinaison de Tcl et Tk (appelé Tcl-Tk ou Tcl/Tk) fut présentée la première fois en janvier 1991 à la Conférence USENIX. Il permettait de s'affranchir de la complexité et du temps de développement accru d'une application écrite avec la librairie Motif. Par la suite, le développement de Tk était suffisamment découplé de celui de Tcl pour être utilisé avec d'autres langages. Les versions pour Windows et Macintosh apparurent en 1994 sous l'impulsion des développeurs du laboratoire de Sun Microsystems. Par souci de clarté, en août 1997, la décision fut prise d'aligner les numéros de version de Tk sur ceux de Tcl.

En décembre 2007 sort Tcl-Tk 8.5. Cette version a la particularité d'inclure un moteur de thèmes qui améliore grandement l'aspect visuel de l'interface graphique rompant ainsi définitivement avec l'héritage de la librairie Motif.

Annexes

Historique des versions significatives

Version Date de sortie Principales nouveautés
8.5 20 décembre 2007
  • Inclusion d'un moteur de thèmes dans le noyau
  • Fontes anti-crénelées (anti-aliasées) sous X11
  • Un widget text plus fluide et harmonisé sous toutes les plates-formes
  • Inclusion des onglets, des boîtes combinées, des listes arborescentes et des barres de progression
  • Gestion de la transparence pour les fenêtres
8.4 10 septembre 2002
  • Inclusion des spinbox, des panneaux coulissants (panedwindow) et des cadres avec titre (labelframe)
  • Calage asymétrique pour la gestion de la géométrie
  • Widgets composites (texte et image) pour les boutons, les labels et les menus
  • Gestion de la transparence pour les images
8.3 10 février 2000
  • Extension des options du widget canvas
  • Amélioration de la prise en charge des images
  • Gestion du quadruple clique de souris
8.1 29 avril 1999
  • Support d'Unicode
8.0 18 août 1997
  • Aspect natif pour les plates-formes Macintosh et Windows
  • Nouvelle interface pour le widget menu
  • Nouveau mécanisme pour la gestion des fontes
  • Inclusion d'applications externes dans Tk sous Unix
  • Support des images dans le widget text
  • Tk fonction dans l'environnement sécurisé Safe-Tcl
  • Alignement des numéros de version de Tk sur ceux de Tcl
4.2 16 octobre 1996
  • Réécriture du gestionnaire de géométrie (grid)
  • Widgets standardisés pour le sélecteur de fichier, le sélecteur de couleur et les boîtes de message
  • Première version pour Windows et Macintosh
4.1 21 avril 1996
  • Nouveau gestionnaire de géométrie (grid)
  • Amélioration des performances du widget text
  • Première version pour Windows et Macintosh
4.0 1er juillet 1995
  • Support des formats d'image XPM et GIF
  • Extension des options du widget text
  • Meilleure compatibilité avec Motif
3.0 décembre 1992
  • Export en Postscript du contenu du widget canvas
  • Meilleure gestion des couleurs
2.2 août 1992
  • Widget text
  • Amélioration du widget canvas
  • Commande d'attente d'un événement (tkwait)
  • Options -state pour neutraliser un widget
  • Nouvelles options pour les champs en entrée

Librairies et extensions les plus utilisées

Mots réservés

bell        labelframe  tk_bisque            ttk::checkbutton   
bind        listbox     tk_chooseColor       ttk::combobox     
bindtags    loadTk      tk_chooseDirectory   ttk::entry       
bitmap      lower       tk_dialog            ttk::frame        
button      menu        tk_focusFollowsMouse ttk::image        
canvas      menubutton  tk_focusNext         ttk::intro        
checkbutton message     tk_focusPrev         ttk::label        
clipboard   option      tk_getOpenFile       ttk::labelframe   
colors      options     tk_getSaveFile       ttk::menubutton   
console     pack        tk_menuSetFocus      ttk::notebook     
cursors     panedwindow tk_messageBox        ttk::panedwindow  
destroy     photo       tk_optionMenu        ttk::progressbar  
entry       place       tk_popup             ttk::radiobutton  
event       radiobutton tk_setPalette        ttk::scrollbar    
focus       raise       tk_textCopy          ttk::separator    
font        scale       tk_textCut           ttk::sizegrip     
frame       scrollbar   tk_textPaste         ttk::style        
grab        selection   tkerror              ttk::treeview     
grid        send        tkvars               ttk::widget       
image       spinbox     tkwait               winfo      
keysims     text        toplevel             wm 
label       tk          ttk::button

Références

  • John K. Ousterhout, Hypergraphics and Hypertext in Tk, The X Resource, Issue Five, 1993
  • Cameron Laird, Kathryn Soraiz, Tk sets the standard, UnixInsider 8/4/2000. [1]
  • Kathryn Edwards, The A-Z of Programming Languages: Tcl, Computerworld, May 2009. [2]

Livres

  • (fr) Bernard Desgraupes, Tcl/Tk - Apprentissage et Référence, Vuibert, ISBN 2-7117-8679-X, 2002.
  • (en) John K. Ousterhout, Tcl and the Tk Toolkit, Addison-Wesley, Reading, MA, USA, ISBN 0-201-63337-X, 1994. (Draft disponible en ligne)
  • (en) Brent B. Welch, Practical Programming in Tcl and Tk, Prentice Hall, Upper Saddle River, NJ, USA, ISBN 0-13-038560-3, 2003. (Plusieurs chapitres en ligne)
  • (en) J. Adrian Zimmer, Tcl/Tk for Programmers, IEEE Computer Society, distribué par John Wiley and Sons, ISBN 0-8186-8515-8, 1998. (Plusieurs chapitres en ligne)
  • (en) Cliff Flynt, Tcl/Tk for Real Programmers, Morgan Kaufman Publishers, ISBN 0-122-61205-1, 1998.
  • (en) Eric Foster-Johnson, Graphical applications with Tcl and Tk, M&T, ISBN 1-55851569-0, 1997.
  • (en) Mark Harrison et Michael McLennan, Effective Tcl/Tk Programming, Addison-Wesley, Reading, MA, USA, ISBN 0-201-63474-0, 1998.
  • (en) Mark Harrison (ed), Tcl/Tk Tools, O'Reilly Media, ISBN 1-56592-218-2, 1997.

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Tk (informatique) de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • informatique — ● n. f. ►TIQUE De INFORmation AutoMATIQUE . Mot inventé en 1962 par P. Dreyfus. L Académie Française a daigné accepter en 1966 le définition suivante: science du traitement rationnel, notamment par machines automatiques, de l information… …   Dictionnaire d'informatique francophone

  • INFORMATIQUE — LE MOT «informatique» a été proposé en 1962 par Philippe Dreyfus pour caractériser le traitement automatique de l’information. Ce terme a été accepté par l’Académie française en avril 1966, avec la définition suivante: «Science du traitement… …   Encyclopédie Universelle

  • INFORMATIQUE ET SCIENCES HUMAINES - Le droit de l’informatique — Nombreuses sont aujourd’hui les interactions du droit et de l’informatique. Si l’informatique juridique documentaire devient indispensable au juriste qui doit apprendre à interroger les grandes banques de données, d’un autre côté, comme tout… …   Encyclopédie Universelle

  • Informatique De Gestion — L’informatique de gestion est l ensemble des connaissances, des technologies, et des outils en rapport avec la gestion de données[1], c est à dire la collecte, la vérification et l organisation de grandes quantités d informations. L informatique… …   Wikipédia en Français

  • Informatique Théorique — L informatique théorique est l étude des fondements logiques et mathématiques de l informatique. Plus généralement, le terme est utilisé pour désigner des domaines ou sous domaines de recherche centrés sur des vérités universelles (axiomes) en… …   Wikipédia en Français

  • Informatique dans le nuage — Le nuage (cloud) est le symbole de l Internet dans le monde informatique. L informatique dans le nuage[1] (en anglais, cloud computing[ …   Wikipédia en Français

  • Informatique dans les nuages — Informatique dans le nuage Le nuage (cloud) est le symbole de l Internet dans le monde informatique. L informatique dans le nuage[1] (en anglais, cloud computing[ …   Wikipédia en Français

  • Informatique de gestion — L’informatique de gestion est l ensemble des connaissances, des technologies, et des outils en rapport avec la gestion de données[1], c est à dire la collecte, la vérification et l organisation de grandes quantités d informations. L informatique… …   Wikipédia en Français

  • Informatique theorique — Informatique théorique L informatique théorique est l étude des fondements logiques et mathématiques de l informatique. Plus généralement, le terme est utilisé pour désigner des domaines ou sous domaines de recherche centrés sur des vérités… …   Wikipédia en Français

  • INFORMATIQUE ET SCIENCES HUMAINES - Histoire et informatique — Les historiens utilisent l’informatique depuis quelques dizaines d’années. À partir des années 1970, après la parution de quelques livres pionniers (M. Couturier, T. K. Rabb), l’emploi de l’ordinateur pour le traitement de données historiques… …   Encyclopédie Universelle

  • INFORMATIQUE ET SCIENCES HUMAINES — S I L’IMPORTANCE des bouleversements que l’informatique provoque dans des domaines toujours plus nombreux de la vie sociale est désormais perçue, l’attention accordée aux modifications qu’elle introduit dans la connaissance de l’homme et de la… …   Encyclopédie Universelle