Die Kommandozeile macht sich schön

Einführung in Tcl/Tk, Teil 3

01.08.2000
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 Raytracer Povray 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.

Immer, wenn Sie prüfen wollen, ob das, was Sie im Folgenden programmieren werden, auch geklappt hat, speichern Sie Ihre Programmdatei und rufen sie mit povgui.tcl auf. Dabei kann es vor allem am Anfang passieren, dass Sie sich z.B. vertippt haben und Fehlermeldungen statt Buttons zu sehen bekommen. Lassen Sie sich davon aber nicht entmutigen. Der Interpreter führt nur aus, was Sie tatsächlich geschrieben – und nicht, was Sie "gemeint" haben.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Einführung in Tcl/Tk, Teil 4
    In der vierten und letzten Folge dieser Tcl/Tk-Einführung fügen wir der in Teil drei entstandenen Steuerungsoberfläche für Povray Funktionalität hinzu und erwecken sie so zum Leben.
  • Einführung in Tcl/Tk, Teil 1
    Die Kommandozeile hat unbestritten ihre Vorteile. Doch manche Aufgaben lassen sich einfacher mit einer grafischen Benutzeroberfläche erledigen. Tcl/Tk ist ein wunderbares Tool, mit dem sich ohne großen Aufwand grafische Benutzeroberflächen erstellen lassen. Im ersten Teil dieser Einführung lernen Sie, wie man Buttons erstellt und mit ihrer Hilfe Befehle ausführt.
  • Einführung in Tcl/Tk, Teil 2
    Nachdem Sie im ersten Teil dieses Programmierkurses einen ersten Einblick in den Umgang mit Tcl/Tk gewinnen konnten, werden Sie diesmal tiefer in die Strukturen von Tcl eintauchen. Die dabei gewonnenen Fähigkeiten können Sie dazu verwenden, Kommandozeilenprogrammen eine intuitivere, auf Ihre persönlichen Bedürfnisse zugeschnittene Benutzerschnittstelle zu spendieren.
Kommentare

Infos zur Publikation

title_2014_08

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 0 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...