Tk (informatique) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

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

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}]      

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

Page générée en 0.088 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise