
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"