- Titel: Skript Programmierung graphischer Benutzerschnittstellen mit Tcl/Tk
- Autor: Prof. Dr. Lutz Wegner
- Organisation: UNI KASSEL
- Seitenzahl: 250
Inhalt
- Inhalt
- 1 Einleitung
- 1.1 Historie
- 1.2 Dynabook, erox Star und Alan Kay
- 2 Grundlagen
- 2.1 Kurzübersicht VDI-Richtlinie 5005 und ISO 9241
- 2.1.1 VDI-Richtlinie 5005 – Software-Ergonomie in der Bürokommunikation
- 2.1.2 DIN EN ISO 9241 – Ergonomische Anforderungen für Bürotätigkeiten mit Bildschirmgeräten
- 2.2 Bildschirmaufteilung
- 2.2.1 Fitts’sches Gesetz
- 2.2.2 Gestaltungsgesetze
- 2.3 Eingabegeräte
- 2.3.1 Texteingabegerät
- 2.3.2 Graphische Zeigegeräte
- 2.3.3 Die Maus
- 2.3.4 Die Tastatur
- 2.3.5 Andere Eingabegeräte
- 2.4 Ausgabegeräte
- 2.5 Softwaretechnik
- 2.6 Aufgaben eines Fenstersystems
- 2.6.1 Minimalforderungen
- 2.6.2 Schnittstellenbeschreibung für minimales Fenstersystem
- 2.6.3 Kriterien für Fenstersysteme
- 2.6.4 Komponenten eines Fenstersystems
- 3 Einführung in die Skriptsprache Tcl
- 3.1 Tclsh und wish
- 3.2 Kommandos und Variablen
- 3.3 Ausdrücke
- 3.4 Beispiel
- 3.5 Substitution und Befehlsausführung
- 4 Fortsetzung Tcl und Einführung in Tk
- 4.1 Listen
- 4.2 Kontrollstrukturen
- 4.3 Prozeduren
- 4.4 Prozeduren (Teil II)
- 4.5 Arrays
- 4.6 Kontrollstrukturen (Teil II)
- 4.7 Erste Schritte mit Tk
- 4.8 Der Tk-Toolkit
- 4.9 Anwendungen produzieren
- 4.10 Status
- 5 Schnittstellen bauen mit Tcl und Tk
- 5.1 Aufbau einer Tk-Applikation
- 5.2 Die Widget Hierarchie
- 5.3 Widgets erzeugen
- 5.4 Geometrie-Management
- 5.4.1 Der Plazierer (placer)
- 5.4.2 Der Packer (packer)
- 5.5 Widget-Kommandos
- 5.6 Verbindungen
- 5.7 Bindings (Verknüpfung mit Ereignissen)
- 5.8 Andere Tcl Kommandos
- 5.9 Zugriff auf andere Hilfsmittel
- 5.10 Beispiel
- 5.11 Zusammenfassung
- 6 Tcl/Tk-Anwendungen erstellen
- 6.1 Der Prozeß der Anwendungserstellung
- 6.2 Eine kleine Anwendung
- 6.2.1 Anwendungsentwurf
- 6.2.2 Bildschirmentwurf
- 6.2.3 Bildschirmprototyp
- 6.2.4 Überlegungen für die Bibliothek
- 6.2.5 Funktionalität einfügen
- 6.2.6 Letzter Glattstrich
- 6.2.7 Testen
- 6.2.8 Programmversand
- 7 Packen, Rastern, Plazieren von Fenstern
- 7.1 Der Gebrauch des pack Kommandos
- 7.1.1 Das Höhlenmodell (cavity-based model)
- 7.1.2 Optionen
- 7.1.3 Plazierungsreihenfolge
- 7.1.4 Hierarchisches Packen
- 7.1.5 Fensterverkleinerungen
- 7.1.6 Fenstervergrößerungen
- 7.1.7 Entpacken von Widgets
- 7.2 Das grid-Kommando
- 7.2.1 Das Gittermodell
- 7.2.2 Gitteroptionen
- 7.2.3 Größenanpassungen
- 7.2.4 Die Manager grid und pack zusammen
- 7.3 Das place-Kommando
- 7.3.1 Das Koordinatenmodell
- 7.3.2 Eigene Geometriemanager
- 8 Ereignisbehandlung
- 8.1 Die Ereignisschleife
- 8.1.1 Tastaturfokus
- 8.1.2 Änderungen erzwingen
- 8.1.3 Langlaufende Anwendungen
- 8.1.4 Gültigkeitsbereich der Ausführung
- 8.1.5 Ersetzungsregeln und die Ereignisschleife
- 8.2 Einfache Beispiele mit bind
- 8.2.1 Auswahl eines Eintrags aus einer Liste
- 8.2.2 Automatische Hilfetexte
- 8.2.3 Bindings für Klassen
- 8.3 Die Syntax des bind-Kommandos
- 8.3.1 Die Ereignisspezifikation
- 8.3.2 Ereignistypen
- 8.3.3 Modifizierer
- 8.3.4 Details
- 8.3.5 Rezept zur Angabe der Ereignissequenz
- 8.3.6 Unterschied Mausmodifizierer und Mausdetail
- 8.3.7 Abkürzungen
- 8.3.8 Ereigniskombinationen
- 8.3.9 Die Prozentsubstitution
- 8.4 Komplexere Ereignisse
- 8.4.1 Click, drag, drop
- 8.4.2 Anpassung von Widget-Verhalten
- 8.5 Bindemarken
- 8.5.1 Vorbesetzung der Bindemarken
- 8.5.2 Der Gebrauch von break in der Ereignisbehandlung
- 8.5.3 Hinzufügen neuer Verbindungsmarken
- 8.5.4 Verhalten am obersten Fenster anbinden
- 8.6 Fehlersuche mit bindings
- 8.6.1 Bindings anzeigen
- 8.6.2 Ereignisse überwachen
- 8.7 Animation
- 8.7.1 Animation von Dingen auf der Leinwand
- 8.7.2 Fehlersuche bei after-Kommandos
- 8.7.3 Bibliotheksroutinen für die Animation
- 9 Der Gebrauch der Leinwand
- 9.1 Das Leinwandwidget verstehen
- 9.1.1 Rollen
- 9.1.2 Die Anzeigeliste
- 9.1.3 Der Gebrauch von Marken (tags)
- 9.1.4 Leinwandverhalten
- 9.2 Rollbare Formulare
- 9.3 Eine Fortschrittsanzeige
- 9.4 Ein HSB Farbeditor
- 9.5 Ein Notizbuch mit Griffleiste
- 9.6 Ein Kalender
- 9.6.1 Größenänderungen behandeln
- 9.6.2 Sensoren und gebundene Kommandos
- 9.6.3 Variablen überwachen
- 9.7 Ein einfaches Malpaket
- 10 Das Textwidget
- 11 Toplevel-Fenster
- 12 Zusammenwirken mit anderen Programmen
- 13 Tcl/Tk-Anwendungen ausliefern
- 13.1 Die Anwendung auf Hochglanz bringen
- 13.1.1 Prioritäten
- 13.1.2 Fehlerbehandlung
- 13.1.3 Startlogos (Placards)
- 13.2 Tcl/Tk-Bibliotheken anlegen
- 13.3 Desktop-Anwendungen
- 13.4 Web-Anwendungen
- Literatur
Vorschau
Lutz Wegner
Programmierung graphischer Benutzerschnittstellen mit Tcl/Tk
Universität Kassel
SKRIPTEN DER PRAKTISCHEN INFORMATIK
Lutz Wegner
Universität Kassel Fachbereich Elektrotechnik/Informatik D-34121 Kassel
4. Auflage April 2009
iii
Vorwort
Tcl/Tk ist die Kombination einer einfachen, eleganten Skriptsprache (Tcl steht für Tool command language, ausgesprochen wie in „tickle“) und einer Bibliothek zur Erstellung einer graphischen Benutzeroberfläche (Tk: Tool kit). Tcl wurde von John Ousterhout, damals an der UC at Berkeley, 1987/88 entwickelt, Tk wurde um 1991 herum fertiggestellt. Die Sprache und der Baukasten für die 11-Oberfläche wurden schnell in der UNI -Gemeinde populär. In einem Interview aus dem Jahr 1999 erklärt Brian Kernighan, der Vater von UNI und AWK, sowie einer der Geburtshelfer von C, zur Rolle von Tcl/Tk: Much of my programming in the past few years has been in Tcl/Tk, since I’ve been doing user interfaces for several different systems, (…). I’ve also done experimental versions of some of these in Java and Visual Basic. I use AWK for simple scripting where I probably would have used the shell in years past. [15] Für Tcl/Tk gibt es auch eine gut aufgebaute Interprozeßkommunikationsbibliothek, etwa für Socket-Verbindungen, so daß sich auch einfach und schnell Client-Server-Systeme aufbauen lassen. Trotzdem ist das Interesse an Tcl/Tk seit ca. 2001 etwas rückläufig. Das hängt mit der Dominanz von Java zusammen, das auch für WebAnwendungen in Form von Applets praktisch überall zu finden ist. war gibt es auch die Tcl-Variante Safe-Tcl als mobilen Code, die sog. Tclets, doch zögern verständlicherweise viele Benutzer, in ihren Browser ein weiteres Plug-in, hier für Tclets, zu laden.