Chargement d'interface gtk avec la libglade (obsolète)

Portrait de trax

(obsolète) : il faut maintenant utiliser gtkBuilder qui est directement inclue dans gtk

Le code

Petit bout de code illustrant comment charger une interface gtk depuis un fichier .glade

#include <gtk/gtk.h>
#include <glade/glade.h>
 
int main (int argc, char *argv[]){
  GladeXML  *main_window;
  GtkWidget *bouton;
 
  gtk_init (&argc, &argv);
 
  /* charge l'interface depuis le fichier test.glade */
  main_window = glade_xml_new ("test.glade", NULL, NULL);
 
 /* charge le widget nommé bouton depuis l'interface principale */
    bouton = glade_xml_get_widget (main_window, "bouton");
 
    g_signal_connect (G_OBJECT (boutton), "clicked", G_CALLBACK (click01), NULL);
    g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL);
 
  /* lance l'interface */
  gtk_main ();
 
  return 0;
}

Compile ?

Comme souvent pour les librairies utilisées, il faut des options de partout. Et quand il existe plusieurs versions de la librairie c'est encore plus long. Un petit utilitaire permet de faire tout ça tout bien j'ai nommé "pkg-config".

Il se contente d'aller chercher les informations dans le fichier .pc qui va bien (encore faut il qu'il y en ait un, ce qui est le cas pour gtk et libglade).

Pour compiller :

gcc -Wall `pkg-config  --cflags gtk+-2.0 libglade-2.0` -c fichier.c 

Pour linker

gcc -Wall `pkg-config  --cflags --libs gtk+-2.0 libglade-2.0`  fichier.o -o prog