Aus LinuxUser 08/2000

Einführung in Tcl/Tk, Teil 3

Die Kommandozeile macht sich schön

Nachdem Sie im ersten Teil dieses Programmierkurses gesehen haben, wie einfach sich Buttons mit Tcl/Tk programmieren lassen, und im zweiten mehr über die Skriptsprache Tcl lernen konnten, werden Sie diesmal eine etwas aufwändigere grafische Oberfläche erstellen.

Tcl/Tk, kurz gefasst

Die Programmiersprache Tcl/Tk besteht aus der leicht erlernbaren Programmiersprache Tcl und der Widget-Library Tk. Tcl/Tk (ausgesprochen: „Tickel-Tikej„) erlaubt unter anderem die höchst einfache und effiziente Programmierung von grafischen Benutzeroberflächen. Der Programmcode wird von einem Interpreter ausgeführt, der für Linux, verschiedene andere Unixbetriebssysteme, Windows, MacOS und OS/2 verfügbar und freie Software ist.

Wir leben in einer schönen Zeit: Alles soll bunt und lustig sein, und da mutet es fast altmodisch an, ein Kommandozeilenprogramm zu verwenden. Außerdem ist alles schnelllebig, so will sich natürlich niemand eine Kommandozeile mit mehr als einer Option merken. Um trotzdem diese wundervollen Programme nutzen zu können, ist es höchst praktisch, sich und vielleicht auch anderen bei Bedarf eine grafische Oberfläche zu erstellen, die das Kommandozeilenprogramm fernsteuert, indem nur auf Knöpfchen gedrückt wird.

Nachdem Sie im letzten Artikel dieser Serie [8,9] ein interaktives Kommandozeilenprogramm für den RaytracerPovray geschrieben haben, soll diesmal eine grafische Oberfläche entstehen, deren Funktionalität Sie im vierten und letzten Teil ergänzen.

Ein paar Worte zu Povray

Povray kann photorealistische Bilder erzeugen, indem es eine Datei einliest, in der Sie eine Szene ähnlich wie mit einer Programmiersprache beschrieben haben. Falls Sie noch nie mit Povray in Berührung gekommen sind, machen Sie sich bei Bedarf z.B. mit Hilfe des Artikels von Christian Perle [1] schlau.

Doch auch, wenn Sie sich nicht für Povray interessieren, können Sie die vorliegende Einführung in Tcl/Tk sinnvoll nutzen: Das Programm dient nur als Beispiel, um das Vorgehen beim Erstellen einer Oberfläche zu erklären.

Wenn Povray Ihnen eine Szene mit einer bestimmten Größe rendern und eine Bilddatei erstellen soll, lautet die Kommandozeile:

povray +Iname_der_szenendatei +Oname_der_bilddatei +Wbildbreite +Hbildhöhe

Im Folgenden geht es darum, diese Zeile durch ein wunderschönes grafisches Programm erzeugen zu lassen.

Der die Arbeit tut

Um ein Tcl/Tk-Programm zu schreiben, müssen Sie in Ihrer Programmdatei zunächst den Tcl/Tk-Interpreter – wish – aufrufen. Nachdem Sie im ersten Teil dieser Reihe den Interpreter im Terminal gestartet und ihm Ihre Datei als Argument mit gegeben haben, wurde er im zweiten Teil von Ihrem Programm selbst aufgerufen. Allerdings musste dazu der komplette Pfad des Interpreters in Ihrem Programm stehen. Wollten Sie Ihr Tcl/Tk-Skript nun auf einem anderen Rechner ausführen, auf dem zwar die wish installiert ist, sich aber an einer anderen Stelle befindet, dann funktionierte Ihr Programm nicht, und Sie mussten es ändern.

Um das zu vermeiden (also ein portables Programm zu schreiben), gibt es einen Trick: Sie starten zunächst die Standardshell des Systems, was auf jedem Unixsystem durch die Zeile #!/bin/sh gelingt, lassen diese nach der wish suchen und selbige starten. Dazu schreiben Sie folgende Zeilen mit Ihrem Lieblingseditor:

#!/bin/sh
#\
exec wish "$0"

In der ersten Zeile wird die Standardshell gestartet und arbeitet Ihr Programm ab. Sie übersieht die zweite Zeile, da an deren Anfang ein Kommentarzeichen (#) steht. In der dritten Zeile ersetzt sich /bin/sh dann selbst durch den Tcl/Tk-Interpreter wish und übergibt ihm mit „$0“ den Namen Ihres Programms zur Ausführung.

Die wish liest Ihre Datei ein, ignoriert aber diese ersten drei Zeilen. Bei den ersten beiden ist das klar, da sie mit einem Gatter # beginnen. Am Ende der zweiten Zeile steht nun aber ein Backslash (\). Dieser macht aus der dritten Zeile die Fortsetzung der zweiten – also auch einen Kommentar. Damit diese Zeilenfortsetzung funktioniert, darf übrigens kein Zeichen – auch kein Leerzeichen – mehr hinter dem Backslash stehen!

Wenn Sie diesen Dreizeiler geschrieben haben, können Sie Ihre Programmdatei vorsorglich schon mal speichern, wobei sich der Name povgui.tcl anbietet. Machen Sie die Datei danach in einem Terminal durch die Eingabe von chmod +x povgui.tcl ausführbar.

Wenn Sie sie jetzt durch die Eingabe von /povgui.tcl in einem Terminal ausführen, passiert aber nichts weiter, als dass ein Fenster aufploppt, auf dem der Name Ihres Programms, also povgui.tcl, steht. Sie können es getrost durch den gleichzeitigen Druck auf die Steuerungstaste Strg und die Taste c wieder beenden und mit dieser Einführung weiter machen.

LinuxUser 08/2000 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: