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

Discussion :

Récupérer la valeur d'un bouton

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2011
    Messages : 42
    Points : 17
    Points
    17
    Par défaut Récupérer la valeur d'un bouton
    Boujour à tous !
    Je découvre tout juste cette bibliothèque complète et j'ai déjà un problème,
    je n'arrive pas à récuprérer la valeur d'un bouton dans une variable ou même la mettre
    en tant que chaine de caractère. Je suis en C++.
    Voici mon code, le fenetre.cpp :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #include "fenetre.h"
     
    MaFenetre::MaFenetre() : QWidget()
    {
        setFixedSize(LARGEUR_FENETRE, HAUTEUR_FENETRE);
     
        long x,y;
        m_dateEntree = 0;
     
        x = 0;
        y = 0;
     
     
     
       for(m_i=0;m_i<31;m_i++)
       {
     
            if(x == 5)
            {
            x = 0;
            y ++;
            }
         x ++;
     
         m_jours[m_i] = new QPushButton("4", this);
         m_jours[m_i] ->setFont(QFont("Comic Sans MS", 10));
         m_jours[m_i] ->setGeometry(100+x*25, 100+y*25, 25, 25);
     
          QObject::connect(m_jours[m_i], SIGNAL(clicked()), this, SLOT(envoi()));
       }
     
         m_bouton2 = new QPushButton("Valider", this);
         m_bouton2 ->setFont(QFont("Comic Sans MS", 10));
         m_bouton2 ->move(250, 95);
     
     
     
     
     
    }
     
     
    void MaFenetre::envoi()
    {
        m_dateEntree = m_i;
     
        if(m_dateEntree == 31)
        {
            m_bouton2 -> setText("YOLO");
     
        }
    }
    J'ai créé mon propre Slot pour pouvoir affécter la valeur du compteur m_i, c'est censé être un calendrier avec seulement les jours pour le moment
    Si quelqu'un peut m'aider, je suis preneur d’exemple simple aussi si vous en avez.
    Merci d'avance à vous

  2. #2
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Bonjour,
    Première remarque ta classe hérite de QWidget, s'il s'agit bien d'une fenêtre et pas juste un composant (un élément graphique à placer dans une fenêtre), tu devrais regarder du côté de QDialog (ou QMainWindow si c'est ta fenêtre principale) qui sont faites pour, et certaines sont déjà faites pour toi.

    Ensuite dans ta boucle for tu utilises la variable membre m_i, ce n'est pas une bonne idée, il vaut mieux boucler en utilisant une variable locale. Car dans ton slot tu te bases sur m_i mais je ne pense pas que ça fasse ce que tu veux, m_i aura seulement la dernière valeur que tu as affecté, cad dans ton exemple la valeur en sortant de ta boucle (31).
    Un bouton n'a pas de valeur à priori, autre que son texte. Selon ce que tu veux faire il y aura plusieurs solutions mais à mon avis ce que tu as fait n'est pas la bonne. Si tu veux savoir quel bouton a été cliqué regarde la classe QSignalMapper, elle permet justement d'avoir un seul slot pour réagir à plusieurs signaux et les traiter différemment.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2011
    Messages : 42
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse !
    Je vais me pencher sur cette classe

  4. #4
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2011
    Messages : 42
    Points : 17
    Points
    17
    Par défaut
    Je commence à comprendre l'interet de QSignalMapper() , j'ai suivi ce tuto : http://qt-quarterly.developpez.com/qq-10/signalmapper/
    Mais j'ai un soucis, en récupérant la valeur lors d'un clik sur un bouton, je ne pense pas récupérer la bonne valeur vu que la condition n'est pas prise en compte...

    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
    38
    39
    40
    41
    42
    43
    44
    #include "fenetre.h"
     
    MaFenetre::MaFenetre() : QWidget()
    {
        setFixedSize(LARGEUR_FENETRE, HAUTEUR_FENETRE);
     
        long x,y;
        int i;
        int jour = 0;
     
        x = 0;
        y = 0;
     
        signalMapper = new QSignalMapper;
        connect(signalMapper, SIGNAL(mapped(int)), this, SIGNAL(digitClicked(int)));
     
       for(i=1;i<32;i++)
       {
     
            if(x == 5)
            {
            x = 0;
            y ++;
            }
         x ++;
         texte = QString::number(i);
         m_jours[i] = new QPushButton(texte, this);
         m_jours[i] ->setFont(QFont("Comic Sans MS", 10));
         m_jours[i] ->setGeometry(100+x*25, 100+y*25, 25, 25);
         signalMapper->setMapping(m_jours[i], i);
     
          QObject::connect(m_jours[i], SIGNAL(clicked()), signalMapper, SLOT(map(jour)));
       }
     
       if(jour == 2)
       {
            m_quitter = new QPushButton("Quitter", this);
            m_quitter->setFont(QFont("Comic Sans MS", 14));
            m_quitter->move(250, 250);
     
       }
     
     
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2011
    Messages : 42
    Points : 17
    Points
    17
    Par défaut
    Je suis toujours bloqué avec cette histoire de récupération de valeur, j'aimerai pouvoir avoir la date choisi dans une variable...
    Si il est possible de créer plusieurs Slot avec une boucle peut-être que je pourrais avoir la valeur du bouton appuyé en fonction de sa valeur affichée mais je ne sais pas comment m'y prendre.

Discussions similaires

  1. récupérer la valeur d'un bouton radio
    Par WhiteTigerZ dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2008, 15h51
  2. récupérer la valeur d'un bouton radio en javascript
    Par franfr57 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/05/2007, 21h28
  3. Comment récupérer la valeur d'un bouton radio ?
    Par langar dans le forum Struts 1
    Réponses: 4
    Dernier message: 24/05/2007, 23h06
  4. Réponses: 11
    Dernier message: 27/03/2006, 10h25
  5. Comment récupérer la valeur d'un bouton radio ?
    Par whbh dans le forum Langage
    Réponses: 2
    Dernier message: 20/01/2006, 23h32

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