Login
Newsletter
Werbung

Mo, 22. November 1999, 00:00

GNOME-Workshop: Das erste Programm

In diesem Teil wird erst einmal das Äquivalent zum textbasierten »Hello World« vorgestellt.

Hello World

Was bei textbasierten Programmen, die nur auf der Konsole laufen, das "Hello World"-Programm ist, ist bei Programmen, die in einem seperaten Fenster ablaufen, ein normales Fenster. Daher wird hier erst einmal das Äquivalent zum textbasierten "Hello World" vorgestellt.

/* 001 */ #include <gnome.h>
/* 002 */
/* 003 */ GtkWidget *fenster;
/* 004 */
/* 005 */ int main (int argc, char *argv[])
/* 006 */ {
/* 007 */ gnome_init_with_popt_table("", NULL, argc, argv, NULL, 0, NULL);
/* 008 */ fenster = gnome_app_new("", _(NULL));
/* 009 */ gtk_widget_show(fenster);
/* 010 */ gtk_main();
/* 011 */ return 0;
/* 012 */ }

Bei dem Listing braucht man /* xxx */ nicht mit abzutippen, denn es ist nur dafür gedacht, daß man sich hinterher auf einzelne Zeilen beziehen kann. Aber ich denke, das ist bereits bekannt, denn Vorkenntnisse in C und/oder C++ werden vorausgesetzt.

Das Programm bitte unter dem Namen prg01_01.c abspeichern. Nun müssen wir das Programm noch kompilieren. Dafür könnte man nun ein Makefile erstellen und dieses durch make aufrufen, doch normalerweise ist so etwas nur für größere Programme notwendig, mit mehr Dateien. Für unser kleines Programm erstellen wir besser eine Datei mit dem Namen doit, die folgendermaßen aussieht:

#!/bin/sh
gcc -I/usr/lib/gnome-libs/include -I/usr/lib/glib/include -c prg01_01.c
gcc -o prg01_01 prg01_01.o -lgnomeui -lart_lgpl -lgnome -lgnomesupport

Nun bitte mit chmod 755 doit dafür sorgen, daß sich die Datei starten läßt. Danach mit ./doit die Datei starten und somit das Programm prg01_01.c kompilieren.

Zu guter letzt das kompilierte Programm durch Eingabe von ./prg01_01 ausführen.

Nun müßte ein leeres Fenster entstanden sein. Oben auf dem Fensterrahmen müßte jetzt der Programmname stehen (in unserem Fall: prg01_01).

Wenn es Komplikationen gab, dann überprüfen Sie bitte noch einmal, ob Sie auch alles richtig abgetippt haben. Oder gucken Sie, ob in der doit-Datei die beiden include-Verzeichnisse mit Ihren Verzeichnissen übereinstimmen.

Bis zum Ende dieses Kapitels kann man die Fenster leider nicht direkt schließen. Bitte gehen Sie zum Beenden des Programms auf das Konsolen-Fenster (Terminal-Fenster) und drücken Sie die Tastenkombination [Strg]+[C] oder beenden Sie den Prozeß mit Hilfe des kill-Befehls.

Damit das Programm doch noch ein Programm wird, das den Namen "Hello World" verdient, wollen wir nun die Zeile 8 durch folgende veränderte Zeile ersetzen:

/* 008 */ fenster = gnome_app_new("", _("Hello World!"));

Wenn man nun das Program ausführt, steht im Rahmenfenster statt des Programmnamens nun "Hello World!".

Fenster mit fester Größe

Manchmal möchte man ein Fenster mit einer bestimmten Anfangsgröße haben. In diesem Fall muß man in das Programm fünf zusätzliche Zeilen einfügen. Mit dem Abtippen und dem Kompilieren gehen Sie bitte so wie beim letzten Programm vor. Beachten Sie jedoch bitte, daß Sie auch die Datei doit verändern müssen.

/* 001 */ #include <gnome.h>
/* 002 */
/* 003 */ GtkWidget *fenster;
<strong>/* 004 */ GtkWidget *feld;</strong>
/* 005 */
/* 006 */ int main(int argc, char *argv[])
/* 007 */ {
/* 008 */ gnome_init_with_popt_table("", NULL, argc, argv, NULL, 0, NULL);
/* 009 */ fenster = gnome_app_new("", _("Hello World!") );
<strong>/* 010 */ gtk_window_set_policy(GTK_WINDOW(fenster), TRUE, TRUE, FALSE);
/* 011 */ feld = gtk_drawing_area_new();
/* 012 */ gnome_app_set_contents(GNOME_APP(fenster), feld);
/* 013 */ gtk_drawing_area_size(GTK_DRAWING_AREA(feld), 400, 300);</strong>
/* 014 */ gtk_widget_show(fenster);
/* 015 */ gtk_main();
/* 016 */ return 0;
/* 017 */ }

Das Programm erstellt nun ein Fenster, das 400 Pixel breit und 300 Pixel hoch ist. Die Maße wurden in Zeile 13 festgelegt. Wegen des ersten TRUE-Wertes in Zeile 10 kann man das Fenster nachträglich kleiner als die Ausgangsgröße (die 400x300 Pixel-Größe) einstellen. Wegen des zweiten TRUE-Wertes in der selben Zeile, kann man das Fenster nachträglich größer als die Ausgangsgröße einstellen.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung