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 :

Déconnexion d'un signal


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Par défaut Déconnexion d'un signal
    Bonjour j'aimerais savoir quelle est la fonction pour déconnecter un widget d'un signal ???

  2. #2
    Membre Expert
    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
    Par défaut
    Pas sûr d'avoir compris la question Les widgets émettent des signaux auxquels tu peux connecter des callbacks si tu le désires.
    Donc je sais pas si tu veux déconnecter un callabck d'un signal, ou bien "désactiver" l'émission d'un certain signal par un widget ? Tu peux développer un epu plus ta question ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Par défaut
    Bien sûuuuuuuuurr que je peux la developper

    Alors voila j'ai un p'tit widget auquel j'ai connecté un signal ("changed") et moi à un certain moment de mon programme je ne veux PLUS qu'il soit connecté à ce signal

    Voila j'espere avoir assez détaillé !!!
    Dans le cas contraire dis-moi ce que tu n'as pas compris

    Merci d'avance pour vos future réponse

  4. #4
    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

  5. #5
    Membre Expert
    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
    Par défaut
    Citation Envoyé par mick009
    Alors voila j'ai un p'tit widget auquel j'ai connecté un signal ("changed") et moi à un certain moment de mon programme je ne veux PLUS qu'il soit connecté à ce signal
    Non, comme dit plus haut, tu as connecté un callback à un signal émis par ton widget, et c'est le callback que tu souhaites déconnecter du signal. Un signal ne se connecte pas à un widget. Pour cela, tu peux utiliser g_signal_handler_disconnect (le gulong à passer en argument t'es renvoyé en valeur de retour de l'appel à g_signal_connect) ou bien g_signal_handler_disconnect_by_func (la fonction attendue en argument est le callback que tu as connecté, le paramètre data correspond au paramètre user_data fourni lors de l'appel à g_signal_connect).

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Par défaut
    Merci de vos réponses. J'ai testé et voici ce que ca donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(gtk_notebook_get_current_page(GTK_NOTEBOOK(Liste_onglet)) != -1){ g_signal_handler_disconnect(TextBuffer, Numero_signal);}
    L'ennui dans la console, cela marque :

    g_signal_handler_disconnect : assertion 'handler_id > 0' failed

  7. #7
    Membre Expert
    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
    Par défaut
    Numero_Signal a l'air de valoir 0....

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Par défaut
    Oui alors j'ai mis une condition pour ne pas avoir 0.
    Seulement, il y a une erreur dans la console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gsignal.c:1739 : instance '00F75F40' has no handler with id '236'
    Avant j'ai afficher le Numero_signal suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Numero_signal = g_signal_connect(G_OBJECT(TextBuffer), "changed", G_CALLBACK(Source), NULL);
            printf("%ld\n", Numero_signal);
    Cela m'a sorti finalement 236

    Merci de votre aide en tout cas et merci d'avance pour les futures réponses

  9. #9
    Membre Expert
    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
    Par défaut
    Je tenterais de faire un g_print ("connected %u to widget %p\n", Numero_signal, G_OBJECT(TextBuffer)); après le g_signal_connect
    et un g_print ("disconnecting %u from widget %p\n", Numero_signal, G_OBJECT(TextBuffer)); pour tenter de comprendre ce qui ne va pas.
    Et essaie de mettre un G_OBJECT() autour du 1er argument de g_signal_disconnect_xxx

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Par défaut
    J'ai réussi merci pour toute vos réponses

    En fait j'avais mal placé le code par rapport à ce que je veux faire et donc cela m'affichait cette erreur...

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

Discussions similaires

  1. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  2. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  3. Déconnexion d'une session Win2k
    Par lamasse dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/10/2003, 08h39
  4. Dxdiag me signale que j'ai 510M de ram
    Par Goetz dans le forum DirectX
    Réponses: 1
    Dernier message: 29/09/2003, 14h33
  5. Interception du signal SIGINT
    Par macleod dans le forum MFC
    Réponses: 2
    Dernier message: 01/07/2003, 18h39

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