Dans ce tuto, nous allons voir comment créer une fenêtre
Déjà, comment compiler un programme en C qui utilise Gtk?
- Code: Tout sélectionner
gcc $(pkg-config --libs --cflags gtk+-2.0) nomDuFichier.c -o nomExecutable
NB : ici, j'utilise gcc comme compilateur , mais vous pouvez utiliser celui de votre choix
- Code: Tout sélectionner
#include <stdlib.h>
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
//avec Gtk, tous les éléments graphiques sont des GtkWidget
GtkWidget * maFenetre = NULL; // on crée donc un GtkWidget qui sera notre fenetre
//cette fonction permet d'initialiser Gtk
gtk_init(&argc, &argv);
// on déclare que notre GtkWidget sera une fenêtre
// GTK_WINDOW_TOPLEVEL permet de la définir en tant que fenêtre "normale",
maFenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
// nous allons maintenant définir la taille de cette fenêtre
// pour celà, on utilise la fonction
// void gtk_window_set_default_size(GtkWindow * window , gint width , gint height )
gtk_window_set_default_size(GTK_WINDOW(maFenetre), 500, 300);
// Il serait intéressant maintenant de donner un titre à notre fenêtre
// pour cela, nous allons utiliser la fonction gtk_window_set_title( GtkWindow * window , gchar * title )
// Attention au passage, on dirai une chaine de caractère mais c'est bien un gchar*
gtk_window_set_title(GTK_WINDOW(maFenetre), "Cool, une fenetre :)");
//voila, tout est prêt pour afficher notre première fenêtre
// nous allons maintenant la rendre visible
// pour cela, on utilise la fonction gtk_widget_show( GtkWidget* widget );
// si on voulais également afficher les éléments contenus dans notre fenêtre,
// la fonction a utiliser serais gtk_widget_show_all( GtkWidget* widget );
// mais nous n'en sommes pas encore là
gtk_widget_show(maFenetre);
// pour quitter proprement quand on ferme la fenêtre ( ça, je l'expliquerai plus tard )
g_signal_connect(G_OBJECT(maFenetre), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
// boucle événementielle
// pour éviter que le programme quitte directement
gtk_main();
return EXIT_SUCCESS;
}
[color="DarkGreen"]Voilà, si vous avez des remarques ou des questions, n'hésitez pas
[/color]


:impressive:
ღ ♥Kornette | 
News