Einführung in Tk

 Das Toolkit ist die Schnittstelle für die Programmierung der grafischen Oberfläche.

  Der Benutzer erzeugt grafische Objekte sog. Widgets.

  Danach werden die Widgets im Fenster mit pack oder place angezeigt.

 Tk Programme arbeiten ereignisorientiert. Jedem Widget können Ereignis-
 prozeduren zugeordnet werden, die beim Ereigniseintritt automatisch
 aktiviert werden.
 Das bedeutet, daß nachdem der Dialog durch den Programmcode gebildet
 wurde der weitere Programmablauf nicht mehr vorhersehbar ist. Er hängt
 ausschließlich davon ab, welche Dialogelemente der Anwender des Programms
 verwendet.

 Das Hello World Programm :

 button .b -text "Hello World !" -command {exit}
 pack .b


 Aufbau der Tk Befehle:

 Als erster Parameter des Kommando muß der Name des Dialogelements
 angegeben werden. Dieser Name ist hierarchisch zusammengesetzt und beginnt
 immer mit einem Punkt, der auf das oberste Element der Objekthierarchie verweist.
 Wenn ein Widget in ein anderes Widget eingefügt werden soll, setzt sich der Name
 aus dem alten und neuen Widget zusammen (z.B. .rahmen.knopf sagt aus,
 daß sich das Widget mit dem Namen knopf im Widget mit dem Namen
 .rahmen befindet).

 Mit den weiteren Parametern können durch Optionen diverse Eigenschaften wie z.B.
 das Aussehen der Widgets definiert werden.

 label .hinweis -background red -text "Hinweis"
 pack .hinweis


 Nachträgliche Änderungen können mit configure geschehen.

 .hinweis configure -background green

 Dieses Prinzip kann auf alle Widgets übertragen werden.
 Tk stellt u.a. die Widgets button, canvas, checkbutton, entry,
 
label, listbox, menu, radiobutton, scrollbar, text
 zur Verfügung.
_____________________________________________________________________

  Plazierung der Dialogelemente

 Für die Plazierung der Dialogelemente ist das pack oder place Kommando
 zuständig. Die Hauptaufgabe für den Packer besteht darin, Größe und Position
 aller Objekte so einzustellen, daß alle Widgets möglichst vollständig dar-
 gestellt werden.

 Die Anordnung der Widgets kann über Optionen wie anchor, expand,
 fill, padx, pady
usw. gesteuert werden.

 pack configure .hinweis -padx 50 -pady 50
_____________________________________________________________________

  Tastatur- und Mausereignisse

 Ein charakteristisches Merkmal von Tk sind die Ereignisprozeduren. Die
 einfachste Variante ist die Aktivierung über die command option (siehe
 Hello World Beispiel).

 Zudem gibt es das Kommando bind, das beliebigen Ereignissen eine
 entsprechende Ereignisprozedur zuordnet.

 Die Syntax des bind Kommandos :

 bind Widget <Ereignis> {Kommandos}

 Beispiele:

 bind .hinweis <Button-1> {
   tk_messageBox -message "Linker Mausbutton" -type ok
 }


 bind .hinweis <Key-q> {
   tk_messageBox -message "Taste Q" -type ok
 }

_____________________________________________________________________

  Erzeugung von neuen Fenstern

 Der Befehl toplevel erzeugt ein neues Fenster.

 toplevel .fenster

 Einige Eigenschaften von Fenstern (Titel, Größe ...) werden durch das
 Kommando wm eingestellt.

 wm title .fenster "Dies ist der Fenstertitel"