1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut Fonction booleen pour tester si un button est clicke

    Bonjour j'aimerais savoir s'il existe une fonction qui permet de tester si un button a ete cliker.. le g_signal_connect ne me convient pas pour mon probleme. Merci

  2. #2
    Membre expert
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : février 2008
    Messages : 1 912
    Points : 3 605
    Points
    3 605
    Billets dans le blog
    3

    Par défaut

    Bonjour.

    Au vu de ta question je suppose que tu désires savoir après coup, et non à l'instant t, si un bouton a été enfoncé. Si c'est bien ça alors c'et à toi de le gérer.

    Tu crées un callback attaché au bouton avec la fameuse fonction g_signal_connect(); dans lequel tu changes l'état d'un booléen dont tu auras la possibilité de sonder l'état ailleurs dans ton code. ( je ne t'incite pas par ces quelques mots à déclarer une variable globale ).
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    je vois mal comment determiner mon callback.
    Jai une boucle qui contient plusieur button et je veux just recuperer le numero du button qui est clickei.. il me faudrai une fonction du genre is_button_clicked(button[i]).
    pouriez m'ecrire un callback svp!

  4. #4
    Membre expert
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : février 2008
    Messages : 1 912
    Points : 3 605
    Points
    3 605
    Billets dans le blog
    3

    Par défaut

    Bonjour.

    Je comprends un peu mieux la problématique.

    On peut, et je dirai même on doit, écrire tant que faire ce peut un seul callback pour gérer une liste de boutons qui vont pratiquement faire la même chose.

    Il suffit donc de connecter tous les boutons à un même callback. Le prototype de ce callback te permet de récupérer en premier argument le pointeur du bouton cliqué.

    Soit tu disposes de la liste des pointeurs de chaque bouton et il te suffit alors de rechercher dedans le pointeur reçu dans le callback, soit tu attaches à chaque bouton un nom via gtk_widget_set_name(); (je te donne cette fonction de tête je n'ai pas la doc sous la main) et tu récupères le nom du widget cliqué dans le callback avec gtk_widget_get_name();

    De tête je crois que le prototype du callback attaché au signal clicked est void on_signal_clicked (GtkWidget *widget, gpointer userdata);
    widget est le pointeur du bouton cliqué.
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    pouriez vous m'aider a ecrir ce callback.. le probleme C'est que en plus de recuperer les pointeur du button je veux aussi recuperer son numero(i).

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    Bon je vous donne un exemple:
    for(i=0;i<no_voiture;i )
    { newvoiture [i], .button =gtk_button_new_with_label(ch);
    g_signal_connect(newvoiture [i], .button"clicked",g_callback(on_clicked_button),NULL);}
    le probleme maintenant C'est dans mon callback je veux utiliser les i du buttonvoiture pour faire newvoiture[i].statut = NON_DISPO

  7. #7
    Membre expert
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : février 2008
    Messages : 1 912
    Points : 3 605
    Points
    3 605
    Billets dans le blog
    3

    Par défaut

    Montres-nous où en est ton code pour que l'on puisse t'éguiller.
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    regarde mon precedent message

  9. #9
    Membre expert
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : février 2008
    Messages : 1 912
    Points : 3 605
    Points
    3 605
    Billets dans le blog
    3

    Par défaut

    Tu peux utiliser le dernier paramètre de la fonction g_signal_connect (); pour transmettre le i. Il te faudra par contre transformer ta variable en pointeur. Pour se faire tu utilises la macro #define GINT_TO_POINTER(i) ((gpointer) (glong) (i))
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    jai essayei d l faire maint fois. mai jl maitrise pas telment

  11. #11
    Membre expert
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : février 2008
    Messages : 1 912
    Points : 3 605
    Points
    3 605
    Billets dans le blog
    3

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i=0;i<no_voiture;i )
    { newvoiture [i], .button =gtk_button_new_with_label(ch);
    g_signal_connect(newvoiture [i], .button"clicked",g_callback(on_clicked_button), GINT_TO_POINTER (i));}
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    Et maintenan coma utiliser ce i dans mon callback

  13. #13
    Membre expert
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : février 2008
    Messages : 1 912
    Points : 3 605
    Points
    3 605
    Billets dans le blog
    3

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void user_function (GtkButton *Button,   gpointer   user_data)
    {
      gint i = GPOINTER_TO_INT (user_data);
     
    ...
    }
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    merci bocoup C exatmen ce dont javai besoin.. jmen veux de ce pas l'essayer

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    jai essayei mai sa m donne pas le temp en tant que telle.. sa converti just ladress du pointeur en int

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 12
    Points : 3
    Points
    3

    Par défaut

    ça marche. vous venez de sauver mon projet de fin d'anne merci

  17. #17
    Membre expert
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : février 2008
    Messages : 1 912
    Points : 3 605
    Points
    3 605
    Billets dans le blog
    3

    Par défaut

    De rien
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

Discussions similaires

  1. [2008R2] Fonction pour tester si un nombre d'enreg est supérieur à 0
    Par Nadinette dans le forum Développement
    Réponses: 2
    Dernier message: 22/01/2015, 09h05
  2. [XL-2010] Propriété pour tester si une MFC est déclenchée ou non
    Par julio44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2014, 17h39
  3. Fonction find pour tester les valeurs de 2 fichiers
    Par Luiza dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/12/2012, 22h09
  4. Réponses: 3
    Dernier message: 27/12/2011, 13h54
  5. Script shell pour tester si un répertoire est vide ou pas
    Par Ito dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/10/2006, 17h44

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