Création d’une fenêtre

  1. Notre premier programme
  2. Notion d’héritage
  3. Notre première fenêtre

1. Notre premier programme

Avant d’aller trop loin, voyons le tout petit programme GTK.

Ce qu’il faut retenir :

  • #include <gtk/gtk.h> C’est cette ligne qui appelle la librairie gtk+. Sans cette ligne, le compilateur ne serait pas en mesure de comprendre le code gtk+. Donc il serait impossible de compiler le programme.
  • gtk_init il nous permet d’initialiser le GTK+.

2. Notion d’héritage

Notion d’héritage en langage C? N’est ce pas que l’héritage n’existe qu’en POO ?

Eh doucement ! Calmez-vous. C’est vrai que je vous ai dit que le langage C est un langage non orienté objet. Et je vous ai dit aussi que l’héritage est l’une des notions les plus importantes en POO.
Cependant le concept de POO existe belle bien en C. Si on connait très bien le C, on peut bien organiser son code de telle sorte qu’il suit le principe de POO. Le langage C est sans doute le langage par excellence. Cependant il reste un langage très compliqué, c’est pour ça que beaucoup de programmeurs ne l’aiment pas.

Le GTK+ suit le principe de la POO. Dieu merci, nous avons déjà vu ce principe en C++.
Avant d’attaquer la dernière partie de ce cours qui consiste à créer notre première fenêtre, il faut savoir que les objets graphiques du GTK+ sont appelés widgets et que les widgets sont organisés suivant une hiérarchie (héritage).

Le widget permettant d’afficher une fenêtre est appelé GtkWindow. Voici son arbre généalogique :

Gtk+ héritage

Et comme le montre le concept de la POO, GtkWindow a l’avantage d’être l’heureux héritier de son parent GtkBin et de ses arrières parents Gtkcontainer, GtkWidget ,GtkObject et GObject

3. Notre première fenêtre

Pour créer notre fenêtre, nous allons commencer par déclarer un pointeur. Bien que le widget concernant les fenêtres est GtkWindow, nous allons déclarer un objet GtkWidget.
Dans ce cas, notre bout de code sera :

Maintenant que l’objet mafenetre est créé, nous allons l’initialiser. Et puis nous allons créer un widget GtkWindow qui aura comme type GTK_WINDOW_TOPLEVEL ou GTK_WINDOW_POPUP.
GTK_WINDOW_TOPLEVEL permet de créer une fenêtre normale tandis que GTK_WINDOW_POPUP permet de créer une popup. Pour la création du widget, nous allons opter pour GTK_WINDOW_TOPLEVEL. Notre ligne de code sera donc :

Maintenant notre fenêtre est déjà créée. Il ne reste qu’à l’afficher. Pour l’affichage nous allons faire ceci :

Et au final nous allons ajouter ceci :

gtk_main permet à l’application d’attendre à ce que les événements se produisent. Si nous l’omettons, la fenêtre sera fermée après son affichage et nous n’aurons pas le temps de la voir.

Voici le code au complet :

Résultat :
Création d'une fenêtre GTK
Voila votre première fenêtre.



Une question? Cliquez ici pour la poser.

Retour sur le portail du langage C/C++