Home / LinuxUser / 2000 / 08 / Einführung in Tcl/Tk, Teil 3

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Apache Open Office
(80 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

792 Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 7 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 1 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 0 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...
OpenLDAP Replikation
Ludwig jun. B., 25.04.2012 14:04, 2 Antworten
Hallo, bis jetzt habe ich nur gering Erfahrung mit OpenLDAP. Doch ich muss mich da jetzt einar...