IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Glade et Libglade


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Glade et Libglade
    Bonjour,

    je débute en ce moment avec glade pour un projet à développer en C. J'ai vite remarqué que mon interface est généré à travers un fichier xml. Suite à mes recherches, j'ai donc trouvé que c'était la libglade qui convertissait ce fichier xml pour utiliser l'interface au sein de mon programme. Mais malgré mes recherches je n'arrive pas à savoir comment concrètement réaliser cela. J'ai trouvé une fonction à insérer dans mon programme ... Est ce que quelqu'un pourrait me confirmer si c'est bien comme cela que je dois faire ?
    J'aurais aussi voulu savoir où je dois placer, dans ce cas là, mon fichier xml .glade pour qu'il soit pris en compte lors de la compilation. Je suis sous Visual C++.
    Merci d'avance pour votre aide

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    personne pour m'aider?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    T'as quelques fonctions à appeler pour parser le fichier xml et créer l'arborescence de widgets, et ensuite t'as une autre fonction à appeler pour récupérer des pointeurs sur les widgets qui t'intéressent. Cf http://developer.gnome.org/doc/API/l...IBGLADE-BASICS par exemple et http://developer.gnome.org/doc/API/l...XML-GET-WIDGET pour la fonction qui récupère un widget (j'ai rien vérifié, je dis ça de tête)

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Bonjour,

    J' ai essayé l'exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #include <gtk/gtk.h>
    #include <glade/glade.h>
     
    void some_signal_handler_func(GtkWidget *widget, gpointer user_data) {
      /* do something useful here */
    }
     
    int main(int argc, char *argv[]) {
        GladeXML *xml;
     
        gtk_init(&argc, &argv);
        glade_init();
     
        /* load the interface */
        xml = glade_xml_new("filename-for-interface", NULL);
        /* connect the signals in the interface */
        glade_xml_signal_autoconnect(xml);
        /* start the event loop */
        gtk_main();
        return 0;
    }
    Ca marche, mais cela n'affiche rien. Il doit manquer un truc. Pas très bavard sur le site gnome pour expliquer la liasion entre le XML et libglade.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Points : 27
    Points
    27
    Par défaut
    il faut aussi creer un fichier xml qui contient les widget et leurs proprietes.
    regarde le code genere par le concepteur d'interface Glade

    ex pour une simple fenetre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    #include <gtk/gtk.h>
    #include <glade/glade.h>
     
     
    GtkWidget*
    create_window (void)
    {
    	GtkWidget *window;
    	GladeXML *gxml;
     
    	gxml = glade_xml_new ("gtk-test.glade", NULL, NULL);
     
    	/* This is important */
    	glade_xml_signal_autoconnect (gxml);
    	window = glade_xml_get_widget (gxml, "window");
     
    	return window;
    }
     
    int
    main (int argc, char *argv[])
    {
     	GtkWidget *window;
    	gtk_init (&argc, &argv);
     
    	window = create_window ();
    	gtk_widget_show (window);
     
    	gtk_main ();
    	return 0;
    }
    le fichier xml "gtk-test.glade":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
    <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
     
    <glade-interface>
     
    <widget class="GtkWindow" id="window">
      <property name="visible">True</property>
      <property name="title" translatable="yes">window</property>
      <property name="type">GTK_WINDOW_TOPLEVEL</property>
      <property name="window_position">GTK_WIN_POS_NONE</property>
      <property name="modal">False</property>
      <property name="default_width">500</property>
      <property name="default_height">400</property>
      <property name="resizable">True</property>
      <property name="destroy_with_parent">False</property>
      <property name="decorated">True</property>
      <property name="skip_taskbar_hint">False</property>
      <property name="skip_pager_hint">False</property>
      <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
      <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
     
      <child>
        <placeholder/>
      </child>
    </widget>
     
    </glade-interface>

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Salut,

    C'est bon, il manquait la création de la fenêtre principale.

Discussions similaires

  1. [C] Glade et dev c++
    Par darktears dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2006, 16h18
  2. tutoriel ou liste des fonctions pour GLADE
    Par debutanteVB.NET dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 23/11/2005, 16h08
  3. <GLADE + C++> Probleme de Librairies
    Par debutanteVB.NET dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 30/09/2005, 12h40
  4. Installation de Glade?
    Par sali dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 14/01/2005, 17h44
  5. Installation d'Anjuta + Glade
    Par Noki dans le forum Applications et environnements graphiques
    Réponses: 12
    Dernier message: 31/03/2004, 23h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo