Strukturelles

Wenn Sie den Prototypen anschauen, können Sie ihn nach der Organisation der Widgets in drei Bereiche unterteilen:

  • Oben die Menüleiste: Nur ein Widget auf einer Seite.
  • In der Mitte das Eingabefeld und die Skalen, jeweils mit der Beschriftung links daneben: Die Widgets sind in Zeilen und Spalten angeordnet.
  • Unten die beiden Knöpfe zum Rendern und Anzeigen: Die Widgets liegen nebeneinander.Wenn Sie diese drei Teile durch drei Frames herstellen, können Sie innerhalb der Rahmen die darin liegenden Widgets vom passenden Geometrie-Manager verstauen lassen. Für die nebeneinander stehenden Widgets ist der packer optimal, während sich für die Zeilen- und Spaltenstruktur in der Mitte der gridder besser eignet.

Rahmenhandlung

Nun kommt Teil Drei der GUI-Entwicklung: Das Programmieren der Oberfläche ohne Funktionen. Zuerst geht es darum, die Struktur des GUI mit Frames fest zu legen.

Frames sind die einfachsten Widgets: In der Grundform sind sie viereckig und unsichtbar und dienen dazu, andere Widgets als Kinder aufzunehmen und anzuordnen. Werden Frames mit zusätzlichen Optionen definiert, können sie allerdings doch noch ein dreidimensionales Aussehen annehmen und Gruppen von Widgets auch optisch voneinander absetzen.

Der Aufruf, der einen Rahmen erzeugt, ist denkbar einfach: Er besteht nur aus dem Befehl selbst und dem Namen des Frames, der wie alle Widgetnamen mit einem Punkt beginnen muss. Damit die Frames ein dreidimensionales Aussehen bekommen, können Sie die Option -relief Reliefart verwenden, wobei das Relief flat (flach), raised (erhaben), groove (mit einem kleinen eingesunkenen Rand) oder ridge (mit kleinem erhabenen Rand) sein kann. Um dieses Relief sichtbar zu machen, brauchen die Frames aber auch noch eine Kantenbreite, die Sie durch die Option -borderwidth Breite (Breite in Pixeln) festlegen.

frame .obererRahmen    -borderwidth 1 -relief raised
frame .mittlererRahmen -borderwidth 1 -relief raised
frame .untererRahmen   -borderwidth 1 -relief raised

Mit dem Hinzufügen dieser Zeilen zu Ihrer Programmdatei sind die Frames angelegt – sie müssen lediglich noch angezeigt werden. Da sie einfach untereinander angeordnet sind, bietet sich dafür der packer an. Übergeben Sie diesem Geometrie-Manager die drei Rahmen, und sagen Sie ihm mit der Option -side Richtung die Richtung, aus der er sie einfüllen soll.

Um Widgets nebeneinander anzuordnen, verwenden Sie left oder right, bei übereinander stehenden Widgets wird top oder bottom für Richtung eingesetzt.

Der packer macht aber jedes Widget nur so groß, wie es unbedingt sein muss. Ist das benachbarte Widget breiter, so bleibt Platz übrig, was Sie gut in Abbildung 3 sehen können. Wollen Sie hingegen, dass Ihre Widgets die zur Verfügung stehende Höhle gänzlichst ausfüllen, ergänzen Sie die Option -fill Richtung. Für Richtung kann x, y oder both angegeben werden.

pack .obererRahmen    -side top -fill x
pack .mittlererRahmen -side top -fill x
pack .untererRahmen   -side top -fill x

Sollten Sie jetzt ausprobieren, wie Ihr Programm aussieht, werden Sie wie in Abbildung 5 – fast – nichts sehen. Ihr Fenster ist nur so groß wie nötig und – da Frames selbst keinen Platz brauchen – beinahe verschwunden. Das wird sich ändern, wenn Sie nun andere Widgets hinein programmieren.

Abbildung 5: Unsichtbare Frames

Am einfachsten sind die Buttons, daher soll damit begonnen werden.

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

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,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

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
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...