Tcl/Tk |
Ausgesprochen "tickel tihkäi". Tcl ist eine Skriptsprache. Tcl steht für Tool Command Language. Tk ist eine Erweiterung von Tcl zur Gestaltung von grafischen Oberflächen.
#!/usr/bin/tclsh |
Der Interpreter muss dabei immer mit vollem Pfad angegeben werden. Den Pfad bestimmt man mit dem Befehl which tclsh.
Für die Ausführung von Tcl-Skripten, die Tk verwenden, wird als Interpreter wish verwendet.
#!/usr/bin/tclsh puts stdout "Hello World!" |
set Zielvariable Zeichenkette |
Eine Kommandosubstitution steht immer in eckigen Klammern. Der Inhalt der eckigen Klammern wird interpretiert und vor der Abarbeitung des Kommandos zurückgegeben.
#!/usr/bin/tclsh set a huhu set b $a set c [expr 3 * 4] puts stdout $b puts stdout $c |
Die Ausgabe des Beispiels ist in der ersten Zeile das Wort huhu und in der zweiten Zeile die Zahl 12. Der Variablen c wird in der dritten Anweisung das Ergebnis der Anweisung expr 3 * 4 zugewiesen. Das Kommando expr berechnet einen mathematischen Ausdruck, den es als Parameter bekommt und gibt das Ergebnis als Zeichenkette zurück.
Dazu werden geschweifte Klammern verwendet. Sie verhindern die Interpretation aller dazwischen liegenden Sonderzeichen.
if for switch break foreach while eval continueEin kleines Beispiel: Umkehrung einer Liste in einer while-Schleife:
set b ""
set i [expr [llength $a] -1]
while {$i >= 0} {
lappend b [lindex $a $i]
incr i -1
}
|
proc sub1 x {expr $x-1}
|
Die oben definierte Prozedur wird wie ein Kommando sub1
aufgerufen.
Jedes Widget wird erzeugt, indem das Klassenkommando
aufgerufen wird. Auf den Klassennamen folgt der Fenstername,
der mit einem Punkt beginnt. Am Ende folgen Konfigurationsoptionen.
Tk
Implementierte Widgetklassen:
Frame Menubutton Canvas
Label Menu Scrollbar
Button Message Scale
Checkbutton Entry Listbox
Radiobutton Text Toplevel
Geometrie
Mit dem Befehl place können Widgets in ihrem
Fenster positioniert werden. Mit dem Befehl pack werden
die Widgets arrangiert.
button .ok -text Ok button .cancel -text Cancel button .help -text Help pack .ok .cancel .help -side left |
Zum Auffüllen des Platzes gibt es die Option -fill
pack .ok .cancel .help -side top -fill x |
Mit dem Kommando bind können Ereignisse an Skripten gebunden werden.
bind .b <Control-h> {backspace .t}
|
Das Fenster ist .b, das X-Ereignis ist Control-h und in den geschweiften Klammern steht die Reaktion auf das Ereignis.
Auf die Koordinaten des Ereignisses kann mit den Substitutionen %x und %y zugegriffen werden. Das betroffene Fenster steht in %W und das Zeichen des Ereignisses ist %A.
#!/usr/bin/wish
label .info -text Rechenclown
entry .aufgabe -textvariable aufgabe
button .ok -text Ok -command {calc $aufgabe}
button .cancel -text Beenden -command exit
pack .info .aufgabe -side top
pack .ok .cancel -side left
proc calc aufgabe {
set aufgabe [expr $aufgabe]
.aufgabe delete 0 10000
.aufgabe insert 0 $aufgabe
}
|
| Homepage | (C) Copyright 2002 Arnold Willemer |