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 :

Probleme avec Callback a 2 arguments


Sujet :

GTK+ avec C & C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Probleme avec Callback a 2 arguments
    Bonjour à tous, j'ai un petit problème que j'arrive pas à resoudre ce probleme, en effet , j'ai une GTKTable de 25 boutons, je veux faire une fonction qui traite tout les boutons en meme temps, mais je peux pas acceder aux autres boutons depuis la fonction que si je les declare comme variables globales.

    Voici un bout du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    GtkWidget * Allumette[25];   
    int pos [25] ;
     
     
     
    for (i=0 ; i<25 ; i++) 
    	gtk_signal_connect ( GTK_OBJECT ( Allumette[i] ) , "clicked" , G_CALLBACK ( tour_joueur ) , &pos[i]) ;
    	gtk_main () ; 
    return 0 ; 
    }
    la fonction :
    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
     
    void tour_joueur (GtkWidget * pBouton , gpointer position ){
     
    	int pos=*(int *)position; 
    	int  i;
    	printf("%d\n" , pos ) ;
    	switch (NB_BOUTONS){
    		case 0 : 	
    			NB_BOUTONS++ ;
    			for ( i=0 ; i<25 ; i++ ){
    				if ( pos != i )
    				gtk_widget_set_sensitive ( pBouton[i],FALSE ) ;
    		}
    		break;
    	}
     
    }
    et je reçois cette erreur :
    error: incompatible type for argument 1 of ‘gtk_widget_set_sensitive’

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    GtkWidget *pButton de la fonction tour_joueur(); ne reçoit que l'adresse du bouton qui a déclenché le signal "clicked". Le seul moyen pour accéder à tous les boutons est de transmettre ton tableau dans la donnée utilisateur en 2ème paramètre.

    En règle générale on crée une structure qui va contenir toutes les données que tu aurais tendance à vouloir déclarer en globale, pour faire simple . Tu déclares une variable de ce type que tu propages à tous les callbacks qui en ont besoin.

Discussions similaires

  1. Probleme avec CallBack/Communication avec le service
    Par Seth77 dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 19/06/2012, 23h03
  2. Réponses: 3
    Dernier message: 08/08/2007, 13h59
  3. Réponses: 8
    Dernier message: 01/06/2007, 00h13
  4. Probleme avec les arguments
    Par Pitou5464 dans le forum C
    Réponses: 6
    Dernier message: 06/11/2006, 16h16
  5. Réponses: 5
    Dernier message: 10/11/2004, 17h23

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