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.

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, 1 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...