Login


 
Newsletter
Werbung

Do, 11. November 1999, 00:00

GTK-Workshop: Teil I

Das erste Programm

Zuerst wollen wir mal ein kleines Programm schreiben, um die wichtigsten Funktionen kennenzulernen. Dieses Programm erstellt ein Fenster mit einer Größe von 200x200 Pixel. Das Programm hat nicht die geringste Funktion, es ist nicht einmal fähig, sich richtig zu beenden, außer man killt es oder beendet es mit Ctrl+C von der Konsole.

Das Programm könnte so aussehen:

/* Beispiel start: window.c */
#include <gtk/gtk.h>
int main( int argc, char *argv[] )
{
 GtkWidget *window;
 gtk_init( &argc, &argv );
 window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
 gtk_widget_show( window );
 gtk_main();
 return 0;
}
/* Beispiel ende */

Das Ganze kann so compiliert werden:

gcc window.c -o window `pkg-config --cflags gtk+-2.0 --libs`

Auf älteren Systemen:

gcc window.c -o window `gtk-config --cflags --libs`

Achtung: Diese Hochkommas sind keine normalen, sondern die, die man per Druck auf SHIFT+Apostroph erreicht!

Hier die Erklärung des Programms, Zeile für Zeile:

#include <gtk/gtk.h>
Diese Zeile erklärt sich eigentlich von selbst. Hier werden die GTK-Headerdateien geladen, die uns die GTK-Funktionen zur Verfügung stellen.

int main( int argc, char *argv[] ) {
Die main()-Funktion, die in jedem C-Programm vorkommt.

GtkWidget *window;
Hier wird ein allgemeines GTK-Widget deklariert. Es werden noch keine Festlegungen über Aussehen und Art gemacht.

gtk_init( &argc, &argv );
Diese Funktion muss in jedem GTK-Programm vorkommen: Sie initialisiert GTK und wertet gleichzeitig übergebene Parameter aus. Dabei werden folgende Parameter ausgewertet und von der Parameter-Liste entfernt:

  • --gtk-module
  • --g-fatal-warnings
  • --gtk-debug
  • --gtk-no-debug
  • --gdk-debug
  • --gdk-no-debug
  • --display
  • --sync
  • --no-xshm
  • --name
  • --class

Die restlichen Parameter werden der Applikation überlassen.

window = gtk_window_new( GTK_WINDOW_TOPLEVEL);
Hier wird ein neues Fenster erstellt. Es kann im weiteren Programmablauf immer als window angesprochen werden. Ein Fenster ohne Children (z.B. andere Widgets) ist automatisch 200x200 Pixel groß, das kann jedoch später geändert werden.

gtk_widget_show( window );
gtk_widget_show() zeigt GTK, daß das Widget fertig eingestellt und nun bereit ist, auf dem Display zu erscheinen. Das muss für jedes Widget gemacht werden. In diesem Fall übergeben wir den Namen unseres Fensters. Also wird das Fenster window gezeigt.

gtk_main();
ist ein weiterer Funktionsaufruf, den jedes GTK-Programm enthält. Er übergibt die Kontrolle an GTK, das dann auf Ereignisse warten kann (z.B. Mausklicks).

Zur merkwürdigen Kompilierung:

Das Programm pkg-config bzw. gtk-config bestimmt automatisch, welche Compilier-Optionen und welche Librarys benutzt werden. Wegen den `-Zeichen wird die Ausgabe des Befehls dort eingesetzt.

Kommentare (Insgesamt: 2 || Alle anzeigen || Kommentieren )
Re: Kompilieren (Lookup, Di, 11. Dezember 2012)
Kompilieren (godsfriend, Mi, 6. Oktober 2010)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung