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éconnecter un signal


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 60
    Par défaut déconnecter un signal
    Salut
    Dans mon programme en GTK j ssaye l'orsque j'appuis sur un bouton il m'affiche une liste mais le probleme que quand j'appuye un autre foie une autre liste apparait. j ai bien chercher dans l internet mais rien ne m'a aidé donc si vous savez comment déconnecter un signal d'un widget dites le moi. merci beaucoup pour tout aide.

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Beaucoup trop vague comme explication. Montre-nous un peu de code histoire qu'on éclaire un peu notre lanterne

  3. #3
    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
    Par défaut
    Pour connecter un signal :
    http://git.gnome.org/cgit/glib/tree/...gsignal.h#n408
    On voit que les fonctions g_signal_connect_* appellent en fait g_signal_connect_data. g_signal_connect_data renvoie un identifiant pour la callback qui gère le signal.

    Pour déconnecter un signal:
    Appeler g_signal_handler_disconnect en utilisant cet identifiant comme variable handler_id.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 60
    Par défaut deconnecter un signal
    merci pour vos réponses et voici mon code

    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
    .......
     g_signal_connect(G_OBJECT(bouton2), "clicked", G_CALLBACK(chercher), NULL);
    .....
    void chercher (GtkWidget*widget)
    {
            liste= gtk_list_store_new(N_COLUMN, G_TYPE_STRING);
            FILE* f= fopen("/root/a.bin", "rb");
            if(f == NULL)
      {
         GtkWidget *dialog;
         dialog = gtk_message_dialog_new(GTK_WINDOW(fenetre), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Impossible d'ouvrir le fichier : \n%s", "identificateur");
         gtk_dialog_run(GTK_DIALOG(dialog));
         gtk_widget_destroy(dialog);
     
      }
     
            while (fscanf(f,"%s",nom)!= EOF)
             {
                  GtkTreeIter iter;
                  gtk_list_store_append(liste, &iter);
                  gtk_list_store_set(liste, &iter, TEXT_COLUMN,nom, -1);
             }
            fclose(f);
            tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(liste)); 
            fichenom = gtk_cell_renderer_text_new();
            colonne= gtk_tree_view_column_new_with_attributes("Identificateurs", fichenom, "text", 0,NULL);
            gtk_tree_view_append_column(GTK_TREE_VIEW(tree),colonne);
            gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); 
            gtk_tree_view_columns_autosize(GTK_TREE_VIEW(tree));
            pScrollbar = gtk_scrolled_window_new(NULL, NULL);
            gtk_container_add(GTK_CONTAINER(pScrollbar),tree);
            gtk_box_pack_start(GTK_BOX(box2) , pScrollbar , TRUE, TRUE, 0);
            g_signal_connect(G_OBJECT(tree),"cursor-changed",G_CALLBACK(des), NULL);
            gtk_widget_show_all(fenetre);
     
     
    }
    donc à chaque foie que je clic sur le bouton2 une liste s'affiche donc si je clic 3foie 3 listes s'afficheront.
    merci

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Pour faire très simple. Pourquoi ne rends-tu pas le bouton2 insensible la première fois où tu entres dans chercher();?

    Au passage le prototype de chercher(); est void user_function(GtkButton *button, gpointer user_data);

  6. #6
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 60
    Par défaut
    merci pour ta reponse j'ai pas réflichi à cette solution parfoie les choses sont trés simples mais puisque je suis trés pressée par le temps j'y pense pas merci encore u ne foie

Discussions similaires

  1. Comment faire déconnecter les utilisateurs d'une base
    Par ENIT-Info dans le forum Access
    Réponses: 23
    Dernier message: 28/02/2017, 14h57
  2. Déconnecter un signal de son handler
    Par Kicker dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 27/05/2008, 08h08
  3. [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
  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