Tk (Toolkit)

Tk (Toolkit)

Tk ist ein offenes, freies und plattformübergreifendes Toolkit zur Programmierung von grafischen Benutzeroberflächen (GUIs), das sich gut für „quick and dirty“-Programmierung und für Prototypen eignet, aber auch zur Erstellung von kleinen bis mittleren Programmen für Unix (X), Windows (ab 95) und Macintosh. Das Kit wurde für Tcl (Tool Command Language) entwickelt und ist von dort aus einfach zu benutzen. Da es sich bewährte, wurden unter anderem auch für Perl, Python (Tkinter), Ruby, Common Lisp und R Anbindungen entwickelt, so dass es auch diesen Programmiersprachen als grafisches Toolkit dient. Tk ist als freie Software unter einer BSD-artigen Lizenz veröffentlicht.[1]

Inhaltsverzeichnis

Widgets

Tk stellt die folgenden Oberflächenelemente zur Verfügung:

Des Weiteren sind die folgenden Toplevel-Windows verfügbar

  • tk_chooseColor - Farbselektion
  • tk_chooseDirectory - Ordner-Auswahl
  • tk_dialog - Modaler Dialog
  • tk_getOpenFile - File-Auswahlt
  • tk_messageBox - Hinweis-Box
  • tk_popup - Post a popup menu
  • toplevel - Allgemeines Toplevel Window

Geometriemanager

Die Geometriemanager (bei Java werden sie Layout-Manager genannt) von Tk sind pack, grid und place. Die Unterschiede der Geometriemanager:

pack
Widgets werden in den "verbleibenden" Raum an der Oberseite, links, rechts oder unten angebracht. An der gegenüberliegenden Seite bleibt Platz für weitere Widgets. Hiermit kann man zunächst nur recht einfache Layouts erstellen, aber über die Verwendung von (geschachtelten) Frames können sie auch komplizierter werden. Besonderer Vorteil von pack (und auch grid) ist, dass bei entsprechenden Einstellungen sich das Layout hervorragend an wechselnde Fenstergrößen anpasst.
grid
Teilt den Platz in ein Raster aus Zeilen und Spalten ein, ähnlich von Tabellen in einem Tabellenkalkulationsprogramm. Insbesondere Formulare (linke Spalte Feldnamen, rechte Spalte Eingabefelder) lassen sich hiermit schön erstellen.
place
Ermöglicht völlig freie Anordnung von Widgets auf der Fläche. Großer Nachteil ist, dass die Anordnung dadurch standardmäßig ortsfest ist und sich nicht an wechselnde Fenstergröße anpassen kann. Die meisten Geometriemanager anderer Programmiersprachen arbeiten aber auch so, z. B. Formulare bei MS Access.
Jedoch ist eine Anordnung der Widgets mit prozentualen Angaben möglich. Dadurch sind Anpassungen an die Fenstergröße in gewissem Maße möglich.

Komplexere Layouts erreicht man durch Verwenden von (geschachtelten) Frames. In jedem Frame darf nur einer der Geometriemanager verwendet werden, innerhalb einer Anwendung können aber durchaus alle drei vorkommen.

Dadurch, dass Tcl sehr gut mit Unicode umgehen kann (dies sogar standardmäßig tut), ist es sehr einfach, auch internationale Zeichen in Tk-Anwendungen sichtbar zu machen.

Ab den Versionen Tcl/Tk 8 wird 'native look and feel' geboten, d. h. bei Macintosh-Applikationen sitzt die Menüzeile immer am oberen Bildschirmrand, bei Windows und Unix dagegen am oberen Rand des jeweiligen Applikationsfensters. Auch andere Widgets sehen jeweils so aus, wie man es auf den verschiedenen Plattformen gewohnt ist.

Tk ist im allgemeinen im Lieferumfang von Tcl/Tk enthalten und ist frei verfügbar. Es gibt reichlich Zusatzsoftware, siehe auch Artikel zu Tcl. Bei den meisten Linux-Distributionen ist es vorhanden, für Windows und Mac kann man es kostenlos aus dem Internet laden, auch als Binärversion[2], d. h. man braucht es nicht selbst zu übersetzen. Dies ist bei Windows und Mac besonders wichtig, weil viele Anwender dort gar keinen Compiler installiert haben.

Beispiele

Ein minimales Zeichenprogramm[3] : verwendet wird ein canvas-Widget .c, auf das mit der Maus gezeichnet werden kann. Dazu werden „Bindings“ für die Ereignisse „linker Mausknopf gedrückt“ und „Bewegung mit linkem Mausknopf gedrückt“ vereinbart. Die Prozedur doodle stellt diese Bindungen her:

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

Bei linkem Mausklick wird ein Linienobjekt (dessen Anfangs- und Endpunkt noch zusammenfallen) angelegt:

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

Bei Mausbewegung wird das aktuelle Linienobjekt um eine Strecke verlängert:

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

Das Hauptprogramm ist gerade einmal drei Zeilen lang:

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

Die letzte Anweisung definiert, dass bei einem Doppelklick auf die rechte Maustaste die Zeichnung gelöscht wird.

Quellen

  1. tcl.tk/software/tcltk/license.html
  2. http://www.tcl.tk/software/tcltk/8.5.html - Downloadmöglichkeiten für Tcl/Tk 8.5.10
  3. nach mini.net

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Toolkit — may refer to an assembly of tools.It may also refer to:* Widget toolkit * Toolkits for User InnovationSpecific toolkits include:* Abstract Window Toolkit * Accessibility Toolkit * Adventure Game Toolkit * B Toolkit * Battlefield Mod Development… …   Wikipedia

  • Toolkit — oder auch Toolbox (englisch für „Werkzeugsatz“) ist ein Begriff aus der elektronischen Datenverarbeitung. Er bezeichnet allgemein eine Sammlung von Bibliotheken, Klassen und Schnittstellen, die das Erstellen von Computerprogrammen vereinfachen… …   Deutsch Wikipedia

  • Toolkit Without an Important Name — Toolkit Without an Important Name,   TWAIN …   Universal-Lexikon

  • toolkit — (n.) 1963, from TOOL (Cf. tool) (n.) + KIT (Cf. kit) (1) …   Etymology dictionary

  • Toolkit — Sur les autres projets Wikimedia : « Toolkit », sur le Wiktionnaire (dictionnaire universel) Toolkit est un mot anglais qui est utilisé en informatique et le plus souvent dans le contexte des interfaces graphiques. Ce mot, qui… …   Wikipédia en Français

  • Toolkit — Tool|kit 〈[tu:l ] m. 6 oder n. 15; EDV〉 ergänzende Programmeinheit (z. B. in Form einer Sammlung von Programmroutinen); Sy Toolbox (1) [engl., eigtl. „Werkzeug(ausrüstung)“] * * * Toolkit   [dt. »Werkzeugausrüstung«] das, eine Sammlung …   Universal-Lexikon

  • Toolkit for Conceptual Modeling — The Toolkit for Conceptual Modeling is a collection of software tools to present specifications of software systems in the form of diagrams, tables, trees, and the like. TCM offers editors for techniques used in Structured Analysis as well as… …   Wikipedia

  • toolkit — priemonių komplektas statusas T sritis informatika apibrėžtis Priemonių rinkinys, skirtas darbui, dažniausiai programavimui, tam tikroje terpėje. Pavyzdžiui, programuoti tam tikra programavimo sistema, tam tikros rūšies programinei įrangai… …   Enciklopedinis kompiuterijos žodynas

  • toolkit — See ignition toolkit …   Dictionary of automotive terms

  • Widget toolkit — Toolkit oder auch Toolbox (englisch für „Werkzeugsatz“) ist ein Begriff aus der elektronischen Datenverarbeitung. Er bezeichnet allgemein eine Sammlung von Bibliotheken, Klassen und Schnittstellen, die das Erstellen von Computerprogrammen… …   Deutsch Wikipedia

  • toolkit — noun a) An assembly of tools. b) set of basic building units for graphical user interfaces See Also: toolbox, toolset …   Wiktionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”