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

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian 7.1 ist erschienen
(179 Punkte bei 5 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Die Kommandozeile macht sich schön

Einführung in Tcl/Tk, Teil 3

Optik

Bei der Entwicklung Ihres grafischen Programms verfahren Sie in vier Schritten:

  • Sie überlegen sich die Funktionen, die das Programm zur Verfügung stellen soll.
  • Sie finden heraus, wie die Nutzer auf Funktionen zugreifen sollen und erstellen einen ersten Prototypen auf Papier.
  • Sie programmieren die grafische Darstellung ohne Funktionen.
  • Wenn Ihnen alles gefällt, programmieren Sie die Funktionen hinzu.Überlegen Sie also als Erstes, was Ihre Oberfläche können soll bzw. was die spätere Nutzerin des Programms an Funktionalität braucht. Lehnen Sie sich zurück, und stellen Sie sich vor, wie Sie oder diejenige, die Sie mit Ihrem GUI beglücken möchten, vor dem Rechner sitzt und Povray bedienen will.

Das könnte z.B. so aussehen: Sie ist gerade dabei, mit einem Editor ihrer Wahl die Datei mit der Povray-Szenenbeschreibung zu erstellen, und möchte nun einfach einen Button drücken, um ihre neuesten Änderungen bildlich zu sehen. Dazu muss die Szene zunächst gerendert und die Bilddatei dann von einem Grafikprogramm angezeigt werden.

Ihre Nutzerin möchte die Größe des zu rendernden Bilds variieren können, um während des Entwicklungsprozesses kleine und am Ende größere Bilder zu berechnen. (Je größer das Bild, desto länger dauert der Povray-Lauf, und so lange möchte sie bei der Entwicklung dann auch nicht immer warten.) Außerdem will sie den Bildern unterschiedliche Namen geben, um auch Zwischenschritte zu dokumentieren.

Damit ist die Funktionalität Ihres Programms klar und im Kasten "Die Funktionen von povgui" zusammen gestellt.

Die Funktionen von Povgui

  • Eine Möglichkeit zum Auswählen der Datei mit der Szenenbeschreibung.
  • Eine Möglichkeit zum Auswählen der Bilddatei, wobei es nett wäre, wenn das Programm aus dem Namen der Szenendatei einen Vorschlag generiert (Austausch der Dateiendung von .pov nach .tga, siehe auch [8,9]).
  • Einstellmöglichkeiten für Bildhöhe und Bildbreite.
  • Ein Knopf zum Rendern der Szenendatei.
  • Ein Button zum Anzeigen des gerenderten Bilds.

Nun kommt Teil Zwei der Programmentwicklung: Sie müssen sich überlegen, wie Sie diese Funktionen so zur Verfügung stellen, dass sie von der Nutzerin möglich einfach zu bedienen sind, wobei Sie sich so weit möglich an bestehenden Anwendungen orientieren sollten. Zeichnen Sie dann eine kleine Skizze, in der Sie die grobe Form des GUI festlegen. Ja, am besten geht das mit Papier und Bleistift, zum Beispiel so wie in Abbildung 1.

Abbildung 1: Erster Prototyp auf Papier

Oberflächlichkeiten

Anschließend gehen Sie daran, diese Oberfläche zu programmieren. Dazu greifen Sie in die Widget-Trickkiste von Tk. In Abbildung 2 sehen Sie das GUI mit der Beschreibung der einzelnen Fensterelemente.

Abbildung 2: Die verwendeten Fensterelemente

Bevor Sie loslegen, noch ein paar Worte zu den Widgets und ihrer Organisation.

In Tk sind die Definition und die Anzeige von Fensterelementen voneinander getrennt. Zunächst legen Sie ein Widget fest und bestimmen dessen Konfiguration wie z.B. seine Aufschrift, Farbe etc. Danach erst übergeben Sie es einem Geometrie-Manager, der es anzeigen lässt.

Wählen können Sie aus drei Geometrie-Managern, die die Darstellung der Widgets unterschiedlich handhaben. Heute lernen Sie zwei davon kennen: pack und grid.

Geometrie-Manager haben die Aufgabe, den ihnen übergebenen Widgets genug Raum zur Verfügung zu stellen. Sie organisieren die Fensterelemente hierarchisch, wobei jedes Widget das Kind eines Eltern-Widgets ist. Die Urahnin aller Widgets ist das Fenster, das Ihr Programm umhüllt. Es trägt den Namen "Punkt" (.). Dieses "Ur-Widget" dient als Container für die Widgets, die darin angezeigt werden sollen. Es gibt aber auch noch andere Fensterelemente, die die Aufgabe von Containern übernehmen, zum Beispiel Frames (Rahmen).

Die Geometrie-Manager grid und pack weisen den ihnen übergebenen Widgets eine "Höhle" innerhalb ihrer Eltern-Widgets zu, die mindestens so groß ist, dass das jeweilige Kind-Widget genug Platz hat. Dieser Raum kann aber auch größer als das Widget sein, wenn sein Nachbar einen größeren Platzbedarf hat.

Der "packer" ordnet die Widgets neben- oder übereinander an, je nachdem, mit welchen Optionen er sie übergeben bekommt. Während dessen organisiert der "gridder" seine Widgets in Zeilen und Spalten wie eine Tabellenkalkulation.

Die Höhlen des packers sind in Abbildung 3, die des gridders in Abbildung 4 dargestellt.

Abbildung 3: Der packer …

Abbildung 4: … und der gridder in Aktion

Beide Geometrie-Manager haben ihre Vorteile, und Sie dürfen sich jeweils den passenden für Ihre Problemlösung aussuchen. Zunächst müssen Sie dazu analysieren, wie Ihre Widgets aufgebaut sind.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 130 Punkte (6 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 07/13

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 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 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

whowatch
Nutzer und Prozesse mit whowatch überwachen
Tim Schürmann, 18.06.2013 12:49, 0 Kommentare

Wenn Administratoren herausfinden wollen oder müssen, was die Benutzer auf einem System gerade so treiben, dann hilft ihnen whowatch. Das kleine Kommandozeilenprogramm zeigt in Ec...

Aktuelle Fragen

SUSE 12.3 64Bit: Miro funzt nicht
Wimpy *, 14.06.2013 13:05, 5 Antworten
Seit Installation von openSUSE 12.3 64Bit startet Miro nicht. (Version 5.0.4-1.24-x86_64 von Pa...
Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 4 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...