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 :

signal `toggle' is invalid for instance


Sujet :

GTK+ avec C & C++

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Points : 66
    Points
    66
    Par défaut signal `toggle' is invalid for instance
    Bonjour,

    Je rencontre un problème un teste sur une case a coché, qui lorsqu'on la coche rend accessible certains boutons.

    Voici la déclaration du bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	checkfi = gtk_check_button_new_with_label("Filtre Decisionnel");
      	gtk_box_pack_start(GTK_BOX(boxnom), checkfi, TRUE, TRUE, 0);
    g_signal_connect(G_OBJECT(checkfi),"toggle",G_CALLBACK(OnCheck),NULL);
    et voici la fonction qu'il appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void OnCheck(GtkWidget* widget, gpointer data)
    {
    	gboolean bCoche;
     
    	/* Savoir sicheckfi est coche ou non */
    	bCoche = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkfi));
     
    	if(bCoche)
    		gtk_widget_set_sensitive(Boxav,TRUE);
    	else
    		gtk_widget_set_sensitive(Boxav,FALSE);
     
    }
    et voici l'erreur renvoyée :

    signal `toggle' is invalid for instance

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Ceci devrait parfaitement fonctionner et éviter une variable globale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void OnCheck(GtkToggleButton* sender, gpointer data)
    {
    	gboolean bCoche;
     
    	/* Savoir sicheckfi est coche ou non */
    	bCoche = gtk_toggle_button_get_active(sender);
     
    	if(bCoche)
    		gtk_widget_set_sensitive(Boxav,TRUE);
    	else
    		gtk_widget_set_sensitive(Boxav,FALSE);
     
    }

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Points : 66
    Points
    66
    Par défaut
    malheureseument l'erreur subsiste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /build/buildd/glib2.0-2.14.1/gobject/gsignal.c:1669: signal `toggle' is invalid for instance `0x80ae018'
    Mais il est vrai que passer la variable globale en local n'est pas plus mal.

    L'ennui c'est que dès le lancement de l'application l'erreur apparaît, ce n'est même pas lorsque je coche la case.

    On dirait que l'erreur vient du callback et du cochage donc toggle.

  4. #4
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Points : 66
    Points
    66
    Par défaut
    En effet ce n'etait pas toggle mais clicked.

    Merci encore pour l'aide

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

Discussions similaires

  1. à quoi correspond le signal toggle-size-allocate
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 4
    Dernier message: 11/12/2012, 15h26
  2. xorq: Error: suffix or operands invalid for `xor'
    Par TSUS86 dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 21/09/2011, 15h32
  3. Réponses: 3
    Dernier message: 28/07/2010, 16h34
  4. Réponses: 2
    Dernier message: 31/03/2009, 09h58
  5. Réponses: 1
    Dernier message: 30/03/2007, 00h53

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