Tk (boîte à outils)

Tk

Scripting universel Tcl-Tk.svg
Donnee de base

Mainteneur Équipe principale de TCL
développeur John Ousterhout
Année d'édition 1991
Version actuelle  8.6.10
(21/11/2019)
système opérateur multiplateforme
langage de programmation C.
Catégorie Boîte à outils GUI
Licence Licence BSD
Parlant allemand Non
www.tcl.tk

Tk est une boîte à outils d'interface graphique multiplateforme gratuite pour la programmation d' interfaces utilisateur graphiques (GUI).

récit

Tk a été développé par John Ousterhout depuis 1988 en tant qu'extension du langage de script Tcl , mais comme il ne travaillait que sur le logiciel en parallèle, il n'a été publié qu'en 1991.

Tk a été écrit principalement pour Unix X11 , mais il est désormais compatible multiplateforme et peut donc également fonctionner sous MacOS et Windows . En raison de l'utilisation généralisée des systèmes X11 à l'époque, principalement dans les universités, le logiciel est rapidement devenu connu et utilisé par un grand nombre de développeurs car il était plus facile à utiliser que les bibliothèques existantes.

En 1994, John Ousterhout est allé à Sun Labs , où il a mis sur pied une équipe pour travailler sur Tcl / Tk. Pendant ce temps, le logiciel s'est répandu et au milieu de 1994, la première version de la bibliothèque Python Tkinter est apparue , peu de temps après, PerlTk a été publié.

Les widgets fréquemment utilisés dans les applications (par exemple les arborescences, les listes déroulantes, les blocs-notes à onglets) n'étaient pas disponibles dans le noyau de Tk, mais uniquement via plusieurs modules complémentaires souvent concurrents. Cela a été changé dans une version de Tk (8.5.0) publiée le 20 décembre 2007, avec l'introduction du jeu de widgets à thème . Cela signifiait que vous pouviez créer des applications sans modifications ni add-ons majeurs.

utilisation

La combinaison commune de Tcl (Tool Command Language) et de la boîte à outils GUI Tk est appelée Tcl / Tk .

Tk est bien adapté à la programmation et aux prototypes «rapides et sales», mais aussi à la création de programmes de petite et moyenne taille pour les systèmes Linux et Unix , y compris macOS et Windows (à partir de 95). Le kit a été développé pour le langage de programmation Tcl et est facile à utiliser à partir de là. Tk est publié en tant que logiciel libre sous une licence de type BSD .

Connexions vocales

Il existe différentes connexions linguistiques pour Tk, y compris les langages de programmation suivants:

Widgets

Tk fournit les éléments d'interface suivants:

Les fenêtres de niveau supérieur suivantes sont également disponibles

  • tk_chooseColor - sélection de couleur
  • tk_chooseDirectory - sélection de dossier
  • tk_dialog - Boîte de dialogue modale
  • tk_getOpenFile - sélection de fichiers
  • tk_messageBox - boîte de message
  • tk_popup - Poster un menu contextuel
  • toplevel - Fenêtre générale de premier niveau

Gestionnaire de géométrie

Les gestionnaires de géométrie de Tk (également appelés gestionnaires de disposition ) sont pack, gridet place. Les différences entre les gestionnaires de géométrie:

pack
Les widgets sont placés dans l'espace «restant» en haut, à gauche, à droite ou en bas. Il y a de la place pour d'autres widgets du côté opposé. Avec cela, vous ne pouvez créer que des mises en page très simples au début, mais elles peuvent également devenir plus compliquées en utilisant des cadres (imbriqués). Un avantage particulier de pack(et aussi grid) est qu'avec les paramètres appropriés, la mise en page s'adapte parfaitement à l'évolution de la taille des fenêtres.
grid
Divise l'espace en une grille de lignes et de colonnes, semblable aux tableaux d'un tableur . En particulier, les formulaires (noms de champ de colonne de gauche, champs de saisie de colonne de droite) peuvent être créés bien avec cela.
place
Permet une disposition totalement libre des widgets sur la zone. Un inconvénient majeur est que la disposition est fixe par défaut et ne peut pas s'adapter aux changements de taille de fenêtre. De nombreux autres gestionnaires de géométrie fonctionnent également de cette manière, par ex. B. Formulaires MS Access.
Cependant, il est possible d'organiser les widgets avec des pourcentages. Cela permet d'ajuster la taille de la fenêtre dans une certaine mesure.

Des mises en page plus complexes peuvent être obtenues en utilisant des cadres (imbriqués). Un seul des gestionnaires de géométrie peut être utilisé dans chaque cadre, mais les trois peuvent certainement se produire dans une application.

Avec la prise en charge d' Unicode par Tcl, de simples caractères internationaux peuvent être utilisés dans les applications Tk.

A partir des versions Tcl / Tk 8, un `` look and feel natif '' est proposé, c'est-à-dire H. avec les applications Mac, la barre de menus est toujours en haut de l'écran, avec Windows et Unix, elle est en haut de la fenêtre d'application respective. D'autres widgets ont également le même aspect que celui auquel vous êtes habitué sur les différentes plates-formes.

Tk est généralement inclus dans la livraison de Tcl / Tk et est disponible gratuitement. Il existe de nombreux logiciels supplémentaires, voir aussi l'article sur Tcl. Il est disponible dans la plupart des distributions Linux; il peut être téléchargé gratuitement sur Internet pour Windows et Mac, également en version binaire. H. vous n'avez pas besoin de le traduire vous-même.

Exemples

Un programme de dessin minimal en Tcl: un widget canvas .c est utilisé, qui peut être dessiné avec la souris. Pour ce faire, des «liaisons» sont convenues pour les événements «bouton gauche de la souris enfoncé» et «mouvement avec le bouton gauche de la souris enfoncé». La procédure doodleétablit ces liaisons:

 proc doodle {w {color black}} {
    bind $w <1>         [list doodle'start %W %x %y $color]
    bind $w <B1-Motion> {doodle'move %W %x %y}
 }

Avec un clic gauche de la souris, un objet ligne (dont les points de début et de fin coïncident toujours) est créé:

 proc doodle'start {w x y color} {
    set ::_id [$w create line $x $y $x $y -fill $color]
 }

Lors du déplacement de la souris, l'objet de ligne courant est prolongé d'une certaine distance:

 proc doodle'move {w x y} {
    $w coords $::_id [concat [$w coords $::_id] $x $y]
 }

Le programme principal ne comporte que trois lignes:

 package require Tk
 pack [canvas .c -bg white] -fill both -expand 1
 doodle .c
 bind .c <Double-3> {%W delete all}

La dernière instruction définit que le dessin est supprimé lorsque vous double-cliquez sur le bouton droit de la souris.


Le contenu de l'exemple suivant correspond à l'exemple Hello World dans l'entrée Wikipedia sur Java Swing

# lädt ggf. das Toolkit (bei Ausführung mit der wish entbehrlich)
package require Tk

# setzt den Titel des Hauptfensters
wm title . "Hallo Welt mit Tk"

# fügt "Hallo Welt"-Text hinzu
pack [label .beispielLabel -text "Hallo Welt"] -side left

# setzt die Fenstergröße
wm geometry . 300x200

# Hinweise:
#   - Das Hauptfenster muss nicht erzeugt werden, sondern
#     ist von vornherein da.
#
#   - Das Hauptfenster muss nicht auf "sichtbar" gesetzt
#     werden, sondern ist von vornherein sichtbar.
#
#   - Dem Programm muss nicht beigebracht werden, dass
#     es beim Schließen des Fensters beendet werden
#     soll, weil das die Standardfunktionalität ist.
#
#   - Um ein Event Dispatching muss man sich nicht kümmern.

liens web

Preuve individuelle

  1. ^ Développement de noyau de Tcl / Tk. Récupéré le 16 juillet 2018 .
  2. www.tcl.tk . " " J'ai présenté un article sur Tk à la fois à la conférence USENIX et à la conférence X en janvier 1991. Quelques semaines après ces conférences, j'ai réalisé la première version Internet de Tk " "
  3. ^ Le projet Open Source tk sur Open Hub: page des langues . Dans: Open Hub . (consulté le 18 juillet 2018).
  4. ^ Histoire de Tcl. Récupéré le 24 mai 2019 .
  5. a b c TkDocs: Contexte. Récupéré le 24 mai 2019 .
  6. tcl.tk/software/tcltk/license.html
  7. tcl.tk - options de téléchargement pour Tcl / Tk 8.5.10
  8. wiki.tcl-lang.org