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 :

Gestion événement images cliquables avec GTK


Sujet :

GTK+ avec C & C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Gestion événement images cliquables avec GTK
    Bonjour,

    Je viens de découvrir GTK et je tente de développer un jeu, seulement je me heurte à un problème.

    J'ai besoin d'images cliquables (donc je gère ça avec des event box) mais j'ai aussi besoin d'afficher ces images dans une certaine disposition grâce à des Vbox ou des Hbox.

    Voici ce que j'ai écrit :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    //Fonction qui affecte les images aux Widgets et qui leur affecte une EventBox
    void init_case(GtkWidget* ptrWidget[8][8], GtkWidget* EventBox[8][8])
    {
    	gint i, j, couleur = 0;
     
    	for(i=0;i<8;i++)
    	{
    		for(j=0;j<8;j++)
    		{
    			if(couleur == 0)
    			{
    				ptrWidget[i][j] = gtk_image_new_from_file("./images/caseB_pion_mod.png");
    				couleur = 1;
    			}
    			else
    			{
    				ptrWidget[i][j] = gtk_image_new_from_file("./images/caseN_pion_mod.png");
    				couleur = 0;
    			}
    			EventBox[i][j] = gtk_event_box_new();
    			gtk_container_add(GTK_CONTAINER(EventBox[i][j]), ptrWidget[i][j]);
    			g_signal_connect(G_OBJECT(EventBox[i][j]), "button-press-event", G_CALLBACK(Onclick), NULL);
    		}
    		couleur = !couleur;
    	}
    }
     
    //Fonction d'affichage de l'échiquier
    void show_echiquier(GtkWidget* EventBox[8][8], GtkWidget* BoxCentre, GtkWidget* BoxLigne[8])
    {
    	gint i, j;
     
    	for(i=0 ; i<8 ; i++)
    	{
    		BoxLigne[i] = gtk_hbox_new(FALSE, 0);
    		gtk_box_pack_start(GTK_BOX(BoxCentre), BoxLigne[i], FALSE, TRUE, 0);
     
    		for(j=0; j<8; j++)
    		{
    			gtk_box_pack_start(GTK_BOX(BoxLigne[i]), EventBox[i][j], FALSE, FALSE, 0);
    		}
    	}
    }


    Mais, ce code ne fonctionne pas.

    L'erreur du compilateur est la suivante : " Gtk-CRITICAL **: gtk_box_pack: assertion `child->parent == NULL' failed"

    Pourriez vous m'éclairer sur la manière de résoudre cette erreur?

    Merci.

  2. #2
    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
    Cela signifie que tu essaies de placer un widget A dans un conteneur B alors que A est déjà dans un conteneur. Un widget ne peut avoir qu'un seul parent, son conteneur, d'où ton erreur.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    D'accord. Merci d'avoir répondu.

    Comment puis-je donc faire pour afficher mes images dans une certaine disposition tout en gardant mes event_box ?

    Puis-je affecter des coordonnées aux event_box?

    Toute solution est la bienvenue

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 293
    Points : 4 943
    Points
    4 943
    Billets dans le blog
    5
    Par défaut
    Les GtkTable ou les GtkFixed peuvent répondre à la question.

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Je crois que je n'aurais pas pu espérer mieux

    C'est exactement ce dont j'avais besoin.

    Merci beaucoup de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des fichiers XML avec GTK+
    Par djibril dans le forum Contribuez
    Réponses: 17
    Dernier message: 16/10/2017, 10h18
  2. Sauvegarder une image cairo avec gtk
    Par dongonis38 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 07/10/2010, 16h01
  3. [XSL~FO] images cliquables avec basic-link...bug?
    Par JMLLB dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 06/04/2007, 16h57
  4. [TP]Gestion des images bmp avec BMP.TPU
    Par Gabi dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 14/05/2004, 23h20

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