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 :

Problème d'initialisation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur QHSE
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur QHSE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Par défaut Problème d'initialisation
    Bonjour,
    Je developpe un logiciel sous windows 7 (32bit), avec Qt, 4.7.3 en C++.
    j'ai redigé la quasi totalisée du code source mais je suis face à un problème : mes variable garde leur valeur d'initialisation et j'arrive pas à leur affectée de nouvelles valeurs.

    je met une partie du code en esérant avoir une réponse.
    Merci d'avance.

    fichier.h
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    #ifndef CALDEBIT_H
    #define CALDEBIT_H
     
    #include <QWidget>
     
    class QDoubleSpinBox;
    class QGroupBox;
    class QLabel;
    class QPushButton;
    class QAction;
    class QMessageBox ;
    class QString ;
    class QPixmap;
     
    class Window : public QWidget
    {
        Q_OBJECT
     
    public:
     
        Window();
     
        double Ivalcote;
        double Ivalcote1;
        double Ivaldebit;
        double valcote;
        double valcote1;
        double valdebit;
     
       void Init()
       {
           Ivalcote  = 0;
           Ivalcote1 =0;
           Ivaldebit=0;
       }
     
    public slots:
     
        void Resultats();
        double calculs();
        void OnClick();
     
    private:
        double CoteDebit();
        void Boutons();
        void quit();
        void setText();
     
        QDoubleSpinBox *doubleSpinBox;
        QGroupBox *spinBoxesGroup;
        QGroupBox *editsGroup;
        QGroupBox *doubleSpinBoxesGroup;
        QLabel *label;
        QLabel *datetimeedit;
        QPushButton *boutonok;
        QPushButton *boutonQuitter;
        QAction *exitAction;
        QString *res;
        QString *res1;
        QString *Qs;
    };
     
    #endif // CALDEBIT_H
    fichier.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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    #include <QtGui>
    #include <QVBoxLayout>
    #include <QFormLayout>
    #include <QTime>
     
    #include "caldebit.h"
     
    /*======================================================================================================================
      DECLARATION DE LA FENETRE PRINCIPAL DU LOGICIEL
     ======================================================================================================================*/
    Window::Window()
    {
        Init();
     
        CoteDebit();
        Boutons();
     
        QHBoxLayout *layout = new QHBoxLayout;
        layout->addWidget(spinBoxesGroup);
        layout->addWidget(editsGroup);
        layout->addWidget(doubleSpinBoxesGroup);
        setLayout(layout);
     
        setWindowTitle(tr("Calculateur du Barrahe de Villerest"));
    }
     
    /*======================================================================================================================
      FONCTION PERMETTANT DE RECUPERER LES VALEURS DES COTES ET DU DEBIT ET DE LES STOCKER
     ======================================================================================================================*/
    double Window::CoteDebit()
    {
     
        spinBoxesGroup = new QGroupBox(tr("Cotes et Débit : "));
     
        QLabel *retenue = new QLabel(tr("Entrer la cote de la retenue précedente : "));
     
        QDoubleSpinBox *SpinBox = new QDoubleSpinBox;
        SpinBox->setRange(270, 325);
        SpinBox->setSingleStep(0.01);
        SpinBox->setValue(0);
        valcote = SpinBox->value();
     
        QLabel *retenueactuelle = new QLabel(tr("Entrer la cote de la retenue actuelle : "));
     
        QDoubleSpinBox *retactu = new QDoubleSpinBox;
        retactu->setRange(270, 325);
        retactu->setSingleStep(0.01);
        retactu->setValue(0);
        valcote1 = retactu->value();
     
        QLabel *debitsortant = new QLabel(tr("Entrer la valeur du débit sortant actuel : "));
     
        QDoubleSpinBox *debsor = new QDoubleSpinBox;
        debsor->setRange(0, 4000);
        debsor->setSingleStep(0.01);
        debsor->setValue(0);
        valdebit = debsor->value();
     
        QGridLayout *spinBoxLayout = new QGridLayout;
        spinBoxLayout->addWidget(retenue,0,0);
        spinBoxLayout->addWidget(SpinBox,1,0);
        spinBoxLayout->addWidget(retenueactuelle,3,0);
        spinBoxLayout->addWidget(retactu,4,0);
        spinBoxLayout->addWidget(debitsortant,6,0);
        spinBoxLayout->addWidget(debsor,7,0);
     
        spinBoxesGroup->setLayout(spinBoxLayout);
     
        Ivalcote=valcote;
        Ivalcote1=valcote1;
        Ivaldebit=valdebit;
     
        return Ivalcote;
        return Ivalcote1;
        return Ivaldebit;
    }
     
    /*======================================================================================================================
     LES RESULTATS
     ======================================================================================================================*/
    void Window::Resultats()
    {
        QString res ;
        res.setNum (Ivalcote);
        QString res1;
        res1.setNum (Ivalcote1);
        QString Qs ;
        Qs.setNum(Ivaldebit);
     
        qDebug() << "la première cote de la retenue est au niveau"<<Ivalcote<<"NGF.";
        qDebug() << "la deuxième cote de la retenue est au niveau"<<Ivalcote1<<"NGF.";
        qDebug() << "le débit sortant est de"<<Ivaldebit<<"M3/s.";
     
         QMessageBox::information(this, "Resultats", "\n A la cote " + res.setNum (Ivalcote) + " NGF le volume de la retenue est de "  "  \n\n"
                                 "A la cote " + res.setNum (Ivalcote1) + " NGF le volume de la retenue est de " "  \n\n"                       
                                      "le debit sortant est de : " + Qs.setNum(Ivaldebit)+ " M3/s \n\n"
     
    }

  2. #2
    Membre éprouvé
    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 : 39
    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
    Par défaut
    Avant tout, lignes 73 à 75, tu fais plusieurs return à la suite. En C++ lorsqu'on appelle ce mot clé, la fonction se termine en renvoyant la valeur donnée. Tu ne peux donc l'appeler qu'une fois (ou alors plusieurs avec if, mais à l'exécution au premier rencontré).

    Pour ton problème il faudrait plus de détails, à quel endroit ça ne fait pas ce que tu veux, sur quelles variables ?

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 65
    Par défaut
    Tu as regarde avec un debogeur si ton code agissait bien comme tu le voulais ? Ces petits outils sont merveilleux

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Bonjour,
    dans la fonction Window::CoteDebit(), tu initialises tes variables, mais quand tes spinbox changent de valeurs comment tu les affectes à tes variables ?

Discussions similaires

  1. Problème d'initialisation
    Par Gryzzly dans le forum C
    Réponses: 3
    Dernier message: 26/12/2005, 12h24
  2. Problème d'initialisation de winsock
    Par benjiprog dans le forum C
    Réponses: 6
    Dernier message: 18/12/2005, 10h45
  3. Problème d'initialisation avec GLFW
    Par adrien357 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 23/10/2005, 18h29
  4. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30
  5. Pitié, aidez moi : Problème d'initialisation de postgreSQL
    Par ttalourd dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 16/11/2004, 12h10

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