Lichtung im GTK-Wald
GUI-Programme erstellen mit Glade
Das GUI des GUI-Builders
Ist Glade einmal installiert, startet es mit glade &. Daraufhin erscheinen drei Fenster: das Projekt-, das Paletten- und das Eigenschaftsfenster.
Ersteres (links oben in Abbildung 1) bildet die Schaltzentrale, über die sich das aktuelle GUI-Projekt speichern oder ein vorhandenes laden lässt, aber auch die zwei anderen Fenster sowie der ebenfalls in Abbildung 1 gezeigte Widget-Baum zu öffnen sind. Hier können auch Projektoptionen – etwa Projektname, Programmiersprache, Verzeichnis- und Dateinamen – geändert werden.
Das Palettenfenster stellt die Widgets zur Verfügung, aus denen man die Bedieneroberfläche aufbaut. Sie sind in zwei Kategorien unterteilt: GTK+ Basic und GTK+ Additional. Wird Glade mit GNOME-Support installiert, gibt es noch eine dritte namens Gnome.
Die Namen und die aktuellen Eigenschaften eines angeklickten Widgets werden im Eigenschaftsfenster angezeigt. In dessen Karteikarte Signale können Handler-Funktionen an die verschiedenen Ereignissen des aktuellen Widgets gebunden werden.
Der Widget-Baum liefert eine Übersicht über die gesamte Widget-Struktur eines Projekts. Außerdem genügt es, auf eines der in ihm dargestellten Widgets zu klicken, damit dessen Attribute im Eigenschaftsfenster angezeigt werden.
Hello World!
Damit all dies nicht zu theoretisch bleibt, entwickeln wir im folgenden eine sehr einfache "Hallo-Welt"-Applikation (Abbildung 4). Sie besteht aus nur einem Fenster mit einem Knopf, der mit dem originellen Label Hello World! beschriftet ist. Wird der Button angeklickt, gibt die Applikation den Text "Hello World!" in der Konsole aus, aus der sie aufgerufen wurde. Den kompletten Quelltext finden Sie auf der Heft-CD oder unter [3].
Wie jede GUI-Applikation braucht auch diese ein Hauptfenster, in das die übrigen Widgets eingefügt werden: Klickt man auf das Window-Icon in der oberen linken Ecke des Palettenfensters, zeichnet Glade ein neues Fenster, in das man andere Widgets von der Palette hinzufügen kann. Im Eigenschaftsfenster legt man dann den Namen des Fensters, dessen Überschrift, Position usw. fest.
Wichtig ist dabei die Karteikarte Signale (Abbildung 2): Hier wird das Signal delete_event an den Handler on_hello_window_delete_event() gebunden. Dieser sorgt dafür, dass das Programm ordentlich beendet wird, wenn der spätere User das Symbol zum Fensterschließen drückt. Vergessen Sie nach der Angabe des Signalnamens nicht, den Knopf Hinzufügen anzuklicken, damit die Verbindung zwischen Signal und Handler tatsächlich hergestellt wird.
Insbesondere am Anfang kennt man noch nicht alle Signale zu einem bestimmten Widget. Dem hilft der Knopf mit der Beschriftung ... neben dem Feld zur Eingabe von Signalnamen ab. Ein Klick darauf, und schon listet ein Dialog wie in Abbildung 3 rechts die Signale zu den jeweiligen Widgets nach Klassen geordnet auf. Sie lassen sich nun per Mausklick auswählen.
Bislang ist das Hauptfenster unserer Applikation aber noch leer. Das lässt sich schnell ändern: Man klickt einmal auf das Knopf-Symbol im Palettenfenster, anschließend auf die leere Fensterschablone – und voilá: Ein Knopf erblickt das Licht der Welt. Im Eigenschaftsfenster stellt man die Knopf-Eigenschaften beliebig ein. Wichtig ist hier, das Signal clicked anzubinden (Abbildung 3).



