canvas .c -width 100 -height 100 grid .c -row 0 -column 0 .c create oval 2 2 97 97 -fill yellow -outline black .c create oval 27 38 31 42 -fill black .c create oval 67 38 71 42 -fill black .c create arc 15 15 84 84 -start 225 -extent 90 -style arc -width 2
Ein Beispiel für ein User-Interface: button .b -text "Hallo" -command {incr i; set entry "Klick $i"} .b config -background green entry .e -textvariable entry grid .b -row 0 -column 0 grid .e -row 1 -column 0 set i 0 Plugin: Widgetnamen Widgetnamen beginnen immer mit einem Punkt. Wird ein Widget in ein Containerwidget eingefügt, so bildet sich sein Name aus der Folge von Containerwidget und neuem Widget: .container.widget. Das Hauptfenster einer Applikation hat den Namen . (Punkt). Übersicht der Widgets Container toplevel: neues, eigenes Fenster auf dem Desktop. frame: Container zur Aufnahme und Anordnung von Widgets. menu: Menü. Darstellungswidgets button: normaler Schalter (auch mit Icon möglich). checkbutton: Ankreuzschalter. radiobutton: Schalter einer Gruppe, von der genau einer ausgewählt wird. menubutton: Menüeintrag. canvas: Darstellung von Graphiken ("objektorientiert"). label: Beschriftung. entry: Textzeile (Ein- und Ausgabe). message: Mehrzeiliger Text (nur Anzeige). listbox: Textliste. text: Texteditor. scrollbar: Rollbalken (für listbox, canvas, text). scale: Werteskala, zur Anzeige und zum Setzen von Variablen. Weitere Widgets wie ComboBox oder TreeView werden von Erweiterungen angeboten oder direkt in der Anwendung programmiert. Da das Canvas objektorientiert arbeitet, sind einfach Manipulationen möglich. Wichtige Dialoge, wie Filemenü oder Messagebox, sind durch Zusammensetzen von Einzelwidgets bereits realisiert und können in Anwendungen genutzt werden. Anordnung der Widgets Ein starres Anordnen der Widgets wie unter Windows üblich ist oft nicht sinnvoll, da aufgrund verschiedener Bildschirmauflösungen die Fenster verschieden groß gewünscht werden oder über Ressourcen andere Schriften ausgewählt werden, so daß die starre Größe nicht mehr paßt. Deshalb werden meist Layoutmanager benutzt, die die Beziehungen der einzelnen Komponenten untereinander beschreiben. Tcl stellt drei Layoutmanager zur Verfügung: place (starre Anordnung), pack (Anordnung bzw. der Ränder) und grid (Anordnung in einem Gitter). Der letzte ist am einfachsten zu bedienen: grid .widget -row 1 -column 0 Mit den Optionen -rowspan bzw. -columnspan können Widgets über mehrere Felder ausgedehnt werden. Beispiel: grid.tcl:
Ein Beispiel für ein User-Interface:
button .b -text "Hallo" -command {incr i; set entry "Klick $i"} .b config -background green entry .e -textvariable entry grid .b -row 0 -column 0 grid .e -row 1 -column 0 set i 0
Widgetnamen Widgetnamen beginnen immer mit einem Punkt. Wird ein Widget in ein Containerwidget eingefügt, so bildet sich sein Name aus der Folge von Containerwidget und neuem Widget: .container.widget. Das Hauptfenster einer Applikation hat den Namen . (Punkt). Übersicht der Widgets Container toplevel: neues, eigenes Fenster auf dem Desktop. frame: Container zur Aufnahme und Anordnung von Widgets. menu: Menü. Darstellungswidgets button: normaler Schalter (auch mit Icon möglich). checkbutton: Ankreuzschalter. radiobutton: Schalter einer Gruppe, von der genau einer ausgewählt wird. menubutton: Menüeintrag. canvas: Darstellung von Graphiken ("objektorientiert"). label: Beschriftung. entry: Textzeile (Ein- und Ausgabe). message: Mehrzeiliger Text (nur Anzeige). listbox: Textliste. text: Texteditor. scrollbar: Rollbalken (für listbox, canvas, text). scale: Werteskala, zur Anzeige und zum Setzen von Variablen. Weitere Widgets wie ComboBox oder TreeView werden von Erweiterungen angeboten oder direkt in der Anwendung programmiert. Da das Canvas objektorientiert arbeitet, sind einfach Manipulationen möglich. Wichtige Dialoge, wie Filemenü oder Messagebox, sind durch Zusammensetzen von Einzelwidgets bereits realisiert und können in Anwendungen genutzt werden. Anordnung der Widgets Ein starres Anordnen der Widgets wie unter Windows üblich ist oft nicht sinnvoll, da aufgrund verschiedener Bildschirmauflösungen die Fenster verschieden groß gewünscht werden oder über Ressourcen andere Schriften ausgewählt werden, so daß die starre Größe nicht mehr paßt. Deshalb werden meist Layoutmanager benutzt, die die Beziehungen der einzelnen Komponenten untereinander beschreiben. Tcl stellt drei Layoutmanager zur Verfügung: place (starre Anordnung), pack (Anordnung bzw. der Ränder) und grid (Anordnung in einem Gitter). Der letzte ist am einfachsten zu bedienen: grid .widget -row 1 -column 0 Mit den Optionen -rowspan bzw. -columnspan können Widgets über mehrere Felder ausgedehnt werden. Beispiel: grid.tcl:
.container.widget
.
Wichtige Dialoge, wie Filemenü oder Messagebox, sind durch Zusammensetzen von Einzelwidgets bereits realisiert und können in Anwendungen genutzt werden.
Tcl stellt drei Layoutmanager zur Verfügung: place (starre Anordnung), pack (Anordnung bzw. der Ränder) und grid (Anordnung in einem Gitter). Der letzte ist am einfachsten zu bedienen:
grid .widget -row 1 -column 0
-rowspan
-columnspan
Beispiel: grid.tcl: