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 Gtk+


Sujet :

GTK+ avec C & C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 18
    Points
    18
    Par défaut Glade et Gtk+
    Bonjour à tous.
    Voilà, je suis nouvelle, et je dois rendre un dossier comprenant un jeu ( ici le jeu de la bataille navale ) en utilisant le logiciel glade en langage C.
    Or, sur internet je ne trouve presque rien : en tous cas rien qui ne m'aide.
    J'aimerais deja savoir si ici quelqu'un sait vraiment bien se servir de glade ou qu'il pourrait m'aider suffisamment le temps que je m'en sorte?
    Merci d'avance pour vos réponse.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    personne pour m'aider??? :'(

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Tu veux faire quoi? apprendre à utiliser glade ou voir quels composants utiliser?

    Pour apprendre à utiliser glade voici un tutoriel très bien pour commencer
    http://franckh.developpez.com/tutoriels/gtk/gtkbuilder/

    Après pour les composants voici quelques endroits ou trouver de la doc et des exemples.
    FAQ GTK+: http://gtk.developpez.com/faq/
    doc officielle: http://library.gnome.org/devel/gtk/stable/

    il faut savoir aussi que la dernière version de glade ne génère pas directement du code mais un fichier xml. (tout est expliqué dans le tutoriel de Franck Hecht)

    Pour savoir quels composants utiliser il faut voir comment sera la structure de ton interface:
    - A quoi ton interface va ressembler?
    - vas tu dessiner dans les fenetres de jeu? (je suppose que oui)

    En espérant que cela puisse t'aider a démarrer.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    Je n'ai pas encore regardé les sites car je ne peux pas travailler aujourd'hui mais je vais les regarder demain je t'en remercie beaucoup.

    Voila je t'explique plus en détail, si tu as des idées pour m'aider je suis preneuse.

    Je suis en deuxième année de licence d'informatique, on nous a fait juste un cours de 3h pour apprendre a installer et a se servir de glade, mais en fait on nous a pas vraiment appris quelque chose. on a juste vu un tuto vite fait et voila.

    Sinon, je sais que le dernier glade ne génère pas de code, c'est pour cela que j'ai glade2 sous ubuntu, en espérant que les sites sont avec ce glade. ( je n'ai pas encore regardé )

    Le travail : on nous a demandé de faire un jeu en réseau ( ici on a décidé de faire la bataille navale ) et sous glade, je suis perdue sous glade et en réseau. j'ai commencé a fait une interface avec une demande de nom, avec un bouton "validez" et un bouton "quitter" le bouton quitter fonctionne la fenêtre se ferme et le programme s'arrête mais pour le bouton validez, je voudrais passer a la seconde fenêtre qui contient ( pour le moment ) juste les 2 grands carrés pour voir son jeu et les points déjà joués de l'autre joueur.

    Voila j'espère t'avoir dit assez de choses pour que tu puisses m'aider un maximum.

    Merci beaucoup de ton aide.

  5. #5
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par bebediddl Voir le message
    Voila j'espère t'avoir dit assez de choses pour que tu puisses m'aider un maximum.
    Le but reste quand même que tu avances de ton côté et poses des questions précises quand tu bloques. C'est à toi de le faire ce projet, nous on l'a eu notre diplôme...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    J'ai oublié de préciser que je suis aussi un débutant avec gtk+ et glade. Pour ce qui est de la partie Réseau je ne pourrais pas t'aider (je sais creer des sockets en C# et en Java mais pas en C)

    bon pour ton problème imaginons ce que tu peux avoir sous glade.

    window1 (ta fenetre principale)
    txt_nom (input pour le nom)
    btn_valider (bouton valider)
    btn_quitter (bouton quitter)
    .... (je ne parle pas des labels)

    window2 (ta fenetre secondaire)
    ... (les deux carrés)

    le code est simple.
    tu récupères l'évènement "clicked" du bouton ok et dans la fonction tu ouvres la deuxième fenetre en appelant la fonction gtk_widget_show_all()

    ça euxième fenetre en appelant la fonction gtk_widget_show_all()
    pourrait donner par exemple. (pour le signal)
    Attention: ce code ne fonctione que si l'on utilise glade3 et que l'on utilise une variable de type gtkbuilder pour recupérer les composants à partir d'un fichier xml

    en supposant que build soit de type GtkBuilder;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gtk_builder_get_object (p_builder, "button1"), "clicked", G_CALLBACK (ouvrir_fenetre),
    (gpointer) build);
    et ouvrir fenetre serait du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    static void ouvrir_fenetre(GtkWidget* btn_ok,gpointer gtkPointer)
    {
     GtkBuilder * build= gtkPointer;
        GtkWidget * ma_fenetre=  (GtkWidget *) gtk_builder_get_object (build, "window2");
      gtk_widget_show_all(ma_fenetre);
    }
    ou quelque chose dans le genre. (avec du code issu de glade2 il suffit simplement d'appeler gtk_widget_show_all(window2); )

    Comme je l'ai dit je suis aussi un débutant et j'ai appris grâce aux nombreux tutoriel (et en particulier ceux de Developpez) il se peut donc que ma méthode ne soit pas la plus efficace.


    Je voudrais cependant insister sur quelque chose:
    Si la dernière version de glade ne génère pas de code c'est parce que le code génèré est un vrai bor***. En étant passé par les mêmes réflexions (pour un habitué de visual C# on peut est surpris d'avoir a configurer les évènements etc....) mais l'utilisation de la version2 de glade nécessite le fait que tu sois absolument sure de ton interface car si tu as ne serait ce qu'un label à ajouter tu devras reprendre tout le code.

    Le tutoriel de Franck Hecht sur l'implémentation du fichier xml de glade3 est accessible.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    ARRRHHHHHHH J'ai un gros problème, mon glade ne veut plus compiler!!!! je ne sais pas ce qu'il lui arrive et mon projet est a rendre pour dans 1 semaine grrrrrrrrrrrrrrrrrrrrrrrrrr

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut re
    Salut caroline (c'est bien cela ?),

    en fait n'oublies pas que l'utilisation de glade 2 est facultative.
    Par contre moi j'ai un problème au niveau de l'installation de glade 2, lorsque je tape ./configure et je ne suis visiblement pas le seul, l'erreur :
    No package 'libxml-2.0' found
    No package 'gtk+-2.0' found

    Si quelqu'un aurait la gentillesse de m'aider... je lui dis un grand merci d'avance !

  9. #9
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Salut Bebediddl,

    Si ça compile pas, c'est qu'il y a une erreur dans le code


    Pour revenir à ce que dit Mylee, il est très fortement déconseillé d'utiliser Glade2 et la génération automatique de code C. Les débutants utilisent souvent cette fonction en croyant qu'il iront plus vite et que Glade programmera tout à leur place, mais c'est une très mauvaise analyse. Il suffit d'un changement dans l'interface Glade, et c'est tout le code C qui est à réécrire entièrement !! D'autre part, comme le code n'a pas été écrit par le programmeur, il est souvent mal compris et utilisé de travers, d'où des bugs supplémentaires.
    La génération automatique de code C est une idée tellement nulle qu'elle a été retirée de la version 3 de Glade.


    Commence donc par installer Glade-3.6.7 (la dernière version Windows) ; cette version permet de travailler directement au format GtkBuilder, et d'obtenir ainsi directement un fichier xml sans passer par le "gtk-builder-convert" du tutoriel.

    Ensuite, assure-toi de bien avoir compris comment gtkBuilder fonctionne. Si tu ne te sens pas capable de reproduire l'exemple du tutoriel, tu ne pourras pas avancer plus loin ; prends donc bien le temps de l'assimiler. N'hésite pas à poser des questions si un point précis te semble obscur.

    Enfin, si tu as une erreur de compilation, on ne pourra pas t'aider si tu ne nous donne pas le code du programme, le code de l'interface et le message d'erreur complet. Une question bien posée, c'est déjà une moitié de réponse.

    Bon courage

  10. #10
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Salut Squall-25,

    Citation Envoyé par Squall-25 Voir le message
    Par contre moi j'ai un problème au niveau de l'installation de glade 2, lorsque je tape ./configure et je ne suis visiblement pas le seul, l'erreur :
    No package 'libxml-2.0' found
    No package 'gtk+-2.0' found
    Pas la peine de compiler Glade : il existe des paquets tout prêts :
    Sous Windows, le programme est téléchargeable ici : http://ftp.gnome.org/pub/GNOME/binar...32/glade3/3.6/
    Sous Linux, il suffit d'ouvrir le gestionnaire de paquets (Synaptics sous Ubuntu, Yast sous OpenSuse, ...) et de chercher "glade".

    Pour info, le "No package 'libxml-2.0' found" signifie qu'il manque les headers de libxml. Sous Linux, ils sont disponibles dans le paquet "libxml-dev". Même chose pour gtk+ (il manque "libgtk2.0-dev"). Sous Windows, je sais pas comment ça marche...

    -

  11. #11
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par Squall-25 Voir le message
    Par contre moi j'ai un problème au niveau de l'installation de glade 2, lorsque je tape ./configure et je ne suis visiblement pas le seul, l'erreur :
    No package 'libxml-2.0' found
    No package 'gtk+-2.0' found

    Si quelqu'un aurait la gentillesse de m'aider... je lui dis un grand merci d'avance !
    Merci de ne pas détourner le sujet d'une discussion pour résoudre ton propre problème : si tu as un souci, ouvre ton propre fil de discussion.

  12. #12
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par monnomamoi Voir le message
    Salut Squall-25,



    Pas la peine de compiler Glade : il existe des paquets tout prêts :
    Sous Windows, le programme est téléchargeable ici : http://ftp.gnome.org/pub/GNOME/binar...32/glade3/3.6/
    Sous Linux, il suffit d'ouvrir le gestionnaire de paquets (Synaptics sous Ubuntu, Yast sous OpenSuse, ...) et de chercher "glade".

    Pour info, le "No package 'libxml-2.0' found" signifie qu'il manque les headers de libxml. Sous Linux, ils sont disponibles dans le paquet "libxml-dev". Même chose pour gtk+ (il manque "libgtk2.0-dev"). Sous Windows, je sais pas comment ça marche...

    -
    Merci mille fois !
    liberforce : Ok tu as raison => je sors

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    ce n'est pas que je ne veux pas travailler sous glade 3 mais c'est que la prof veut que l'on travaille avec glade2, pas une envie mais un devoir

  14. #14
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Dans ce cas, il faut que tu sois bien sûre de l'interface lorsque tu la dessine avec Glade : une fois le code C généré, c'est tartignolle pour revenir en arrière.

    Typiquement, moi je verrai ça comme une fenêtre principale contenant 2 grilles (GtkTable) de 10x10 GtkButtons (un peu du style "démineur"), plus une autre fenêtre modale qui demande les identifiants réseau.

    N'hésite pas à poster ton fichier glade sur le forum si tu veux qu'on donne notre avis dessus avant que tu avances plus loin.

    -

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    j'ai deja fait la fenetre comme tu me dis ( je sais que c'est galere quand tu oublie quelque chose j'ai refais ma fenetre 3 fois avant d'etre contente du résultat!! ) par contre je ne sais pas comment vous envoyer le fichier glade alors je vais vous faire une capture d'écran.

    Bon ce n'est qu'un début étant donné qu'ensuite mon glade a bloqué. vous avez le carré de gauche ou il faudra installer les bateaux, et celui de droite ou l'on appuyera sur les boutons pour toucher ( ou couler ^^ ) et tout a droite le grand rectangle pour mettre les nom des joueurs, les bateaux qu'ils leurs restent et peut etre les point des parties ( précédentes ) gagnées.

    Dites moi ce que vous en pensez? si vous avez des idées je vous écoute.

    Merci beaucoup de votre aide.
    Images attachées Images attachées  

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Mylee Voir le message
    J'ai oublié de préciser que je suis aussi un débutant avec gtk+ et glade. Pour ce qui est de la partie Réseau je ne pourrais pas t'aider (je sais creer des sockets en C# et en Java mais pas en C)

    bon pour ton problème imaginons ce que tu peux avoir sous glade.

    window1 (ta fenetre principale)
    txt_nom (input pour le nom)
    btn_valider (bouton valider)
    btn_quitter (bouton quitter)
    .... (je ne parle pas des labels)

    window2 (ta fenetre secondaire)
    ... (les deux carrés)

    le code est simple.
    tu récupères l'évènement "clicked" du bouton ok et dans la fonction tu ouvres la deuxième fenetre en appelant la fonction gtk_widget_show_all()

    ça euxième fenetre en appelant la fonction gtk_widget_show_all()
    pourrait donner par exemple. (pour le signal)
    Attention: ce code ne fonctione que si l'on utilise glade3 et que l'on utilise une variable de type gtkbuilder pour recupérer les composants à partir d'un fichier xml

    en supposant que build soit de type GtkBuilder;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gtk_builder_get_object (p_builder, "button1"), "clicked", G_CALLBACK (ouvrir_fenetre),
    (gpointer) build);
    et ouvrir fenetre serait du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    static void ouvrir_fenetre(GtkWidget* btn_ok,gpointer gtkPointer)
    {
     GtkBuilder * build= gtkPointer;
        GtkWidget * ma_fenetre=  (GtkWidget *) gtk_builder_get_object (build, "window2");
      gtk_widget_show_all(ma_fenetre);
    }
    ou quelque chose dans le genre. (avec du code issu de glade2 il suffit simplement d'appeler gtk_widget_show_all(window2); )

    J'ai essayé ce que tu m'as dit, mais cela ne fonctionne pas ( mon glade recompile ca yest, en fait il aimait pas ma photo )

    D'ailleurs, une autre question, je veux mettre une photo sur ma page d'accueil, mais quand je compile il veut pas de ma photo, et quand je le lance je la vois pas du tout.

    Une petite idée?

  17. #17
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par monnomamoi Voir le message
    Dans ce cas, il faut que tu sois bien sûre de l'interface lorsque tu la dessine avec Glade : une fois le code C généré, c'est tartignolle pour revenir en arrière.
    Quel est le rapport ? Glade2 sait générer du XML, pas besoin de générer du code C.

  18. #18
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par bebediddl Voir le message
    j'ai deja fait la fenetre comme tu me dis ( je sais que c'est galere quand tu oublie quelque chose j'ai refais ma fenetre 3 fois avant d'etre contente du résultat!! ) par contre je ne sais pas comment vous envoyer le fichier glade alors je vais vous faire une capture d'écran.

    Bon ce n'est qu'un début étant donné qu'ensuite mon glade a bloqué. vous avez le carré de gauche ou il faudra installer les bateaux, et celui de droite ou l'on appuyera sur les boutons pour toucher ( ou couler ^^ ) et tout a droite le grand rectangle pour mettre les nom des joueurs, les bateaux qu'ils leurs restent et peut etre les point des parties ( précédentes ) gagnées.

    Dites moi ce que vous en pensez? si vous avez des idées je vous écoute.

    Merci beaucoup de votre aide.
    N'oublie pas non plus l'interface pour placer les bateaux, au démarrage de l'application, sachant qu'il faut pouvoir l'orienter comme on veut.

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    oui c'est bien cela qui me pose probleme, je ne sais pas comment gerer ce probleme!!! si vous avez une idée je veux bien

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    pour l'orientation je suppose que c'est du vertical/horizontal. Il suffirait par exemple d'appuyer sur une touche pour switcher (je pense que ça doit pouvoir se faire d'intercepter un évènement comme celui la au niveau de la fenêtre).

    est ce que l'on pourrait placer les bateaux dans une autre fenêtre? ça pourrait s'imaginer (style une fenêtre qui s'ouvre et qui se ferme une fois que tous les bateaux sont placés et que l'on confirme nos emplacements).

    pour récupérer les paramètres on peut passer une structure (un tableau de bateaux) quoi contiendrait les coordonnées un peu de ce type la.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct Bateau{
    int type; //1:destroyer 2:Porte Avion 3:Sous Marin
    int x;//coordonnées de la première case
    int y;
    char orientation; //v pour vertical h pour horizontal
    }Bateau
    note: pour l'image ce que tu peux faire c'est l'intégrer à partir du code en C au lieu de glade.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gtk_image_set_from_file(GTK_IMAGE(Image),"Image.png");
    avec Image composant de type GtkWidget* (ou sinon je pense qu'il peut être du type GtkImage dans ce cas la pas besoin d'utiliser la macro de conversion.

    Attention. si ton image ne se trouve pas dans le répertoire du projet il faudra passer l'adresse complète.

    Edit Mylee: j'ai corrigé mes fautes ^^

Discussions similaires

  1. installation Glade et GTK+
    Par autre dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 17/12/2011, 13h03
  2. langage C et glade et GTK
    Par mallsoul dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 09/04/2010, 04h26
  3. interface glade : erreur gtk-builder-convert
    Par alexglvr dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 14/09/2009, 17h46
  4. installer python2.6 et glade et gtk
    Par mike5923 dans le forum Déploiement/Installation
    Réponses: 0
    Dernier message: 07/09/2009, 17h32
  5. Réponses: 17
    Dernier message: 10/10/2006, 20h57

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