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+ Discussion :

Fonction booleen pour tester si un button est clicke


Sujet :

GTK+

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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
    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 ).

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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
    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é.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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 : 27
    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
    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
    Montres-nous où en est ton code pour que l'on puisse t'éguiller.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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
    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))

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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
    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));}

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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
    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);
     
    ...
    }

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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 : 27
    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 : 27
    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
    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
    De rien

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