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

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(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

653 Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/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

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 0 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...