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 :

Passage de valeur d'un objet à un autre par un slot

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 42
    Par défaut Passage de valeur d'un objet à un autre par un slot
    bonjour à tous, j'ai un vrai problème de débutant. Désirant avoir un code bien découpé, j'ai un un fichier (h et cpp) pour l'interface et un fichier pour tout ce qui concerne les calculs. Je désire en effet faire un petit logiciel de calcul de beton. Or, je n'arrive pas à faire transférer des données lu par l'intermédiaire du fichier de l'interface vers une variable situé dans l'autre fichier. bref, j'ai beau avoir créer un nouvel objet, il refuse d'assigner la valeur à la varibale demandée.

    interface: probleme ligne 122: a function-definition is not allowed here


    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
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    #include "MaFenetre.h"
    #include "Beton.h"
     
    MaFenetre::MaFenetre() : QWidget()
    {
     
     
     
        // Construction du bouton
        m_hauteur = new QDoubleSpinBox(this);
        m_largeur = new QDoubleSpinBox(this);
        m_enrobage = new QDoubleSpinBox(this);
     
        QLabel *hauteur = new QLabel("hauteur");
        QLabel *largeur = new QLabel("largeur");
        QLabel *enrobage = new QLabel("enrobage");
     
        QLabel *hauteurcm = new QLabel("cm");
        QLabel *largeurcm = new QLabel("cm");
        QLabel *enrobagecm = new QLabel("cm");
     
     
     
     
    //Geometrie
        QGridLayout *geometrie = new QGridLayout;
     
        geometrie->addWidget(hauteur,2,0);
        geometrie->addWidget(largeur,1,0);
        geometrie->addWidget(enrobage,0,0);
     
        geometrie->addWidget(hauteurcm,2,2);
        geometrie->addWidget(largeurcm,1,2);
        geometrie->addWidget(enrobagecm,0,2);
     
     
        geometrie->addWidget(m_enrobage,0,1);
        geometrie->addWidget(m_largeur,1,1);
        geometrie->addWidget(m_hauteur,2,1);
     
        QGroupBox *groupGeom = new QGroupBox ("Géométrie et caractéristiques");
        groupGeom->setLayout(geometrie);
     
     
    //action
     
        m_moment = new QDoubleSpinBox(this);
        m_tranchant = new QDoubleSpinBox(this);
        QLabel *moment = new QLabel("moment");
        QLabel *tranchant = new QLabel("Effort tranchant");
        QLabel *tranchantkN = new QLabel("kN");
        QLabel *momentkNm = new QLabel("kNm");
     
     
     
        QGridLayout *action = new QGridLayout;
        action->addWidget(moment,0,0);
        action->addWidget(tranchant,1,0);
     
        action->addWidget(momentkNm,0,2);
        action->addWidget(tranchantkN,1,2);
     
     
        action->addWidget(m_moment,0,1);
        action->addWidget(m_tranchant,1,1);
     
     
        QGroupBox *groupAction = new QGroupBox ("Actions");
        groupAction->setLayout(action);
     
    //bouton clacul
     
        m_calculBeton = new QPushButton("calcul");
     
    //Résultat
     
        m_As = new QLineEdit(this);
        m_Ass = new QLineEdit(this);
        m_Asw = new QLineEdit(this);
        QLabel *As = new QLabel("As");
        QLabel *Ass = new QLabel("As'");
        QLabel *Asw = new QLabel("Asw");
        QLabel *ascm2 = new QLabel("cm²");
        QLabel *asscm2 = new QLabel("cm²");
        QLabel *aswcm2 = new QLabel("cm²");
     
     
        QGridLayout *resultat = new QGridLayout;
        resultat->addWidget(As,0,0);
        resultat->addWidget(Ass,1,0);
        resultat->addWidget(Asw,2,0);
     
        resultat->addWidget(ascm2,0,2);
        resultat->addWidget(asscm2,1,2);
        resultat->addWidget(aswcm2,2,2);
     
        resultat->addWidget(m_As,0,1);
        resultat->addWidget(m_Ass,1,1);
        resultat->addWidget(m_Asw,2,1);
     
     
        QGroupBox *groupResultat = new QGroupBox ("Résultat");
        groupResultat->setLayout(resultat);
     
     
    //Principal
        QVBoxLayout *layoutPrincipal = new QVBoxLayout;
        layoutPrincipal->addWidget(groupGeom);
        layoutPrincipal->addWidget(groupAction);
        layoutPrincipal->addWidget(m_calculBeton);
        layoutPrincipal->addWidget(groupResultat);
     
     
     
        setLayout(layoutPrincipal);
     
    // implementation slot
     
        Beton poutre; // nouvelle objet
     
    void MaFenetre::calculBeton(double h)
    {
        poutre.hauteur=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
     
     
    #ifndef DEF_MAFENETRE
    #define DEF_MAFENETRE
     
    #include <QApplication>
    #include <QWidget>
    #include <QDoubleSpinBox>
    #include <QGroupBox>
    #include <QVBoxLayout>
    #include <QGridLayout>
    #include <QLabel>
    #include <QLineEdit>
    #include <QPushButton>
     
     
    class MaFenetre : public QWidget // On hérite de QWidget (IMPORTANT)
    {
     
        // Les signaux
     
    Q_OBJECT
     
        public:
        MaFenetre();
     
        //les signaux
     
        public slots:
        void calculBeton(double h);
     
        // le reste
     
        private:
        QDoubleSpinBox *m_hauteur;
        QDoubleSpinBox *m_largeur;
        QDoubleSpinBox *m_enrobage;
     
        QDoubleSpinBox *m_moment;
        QDoubleSpinBox *m_tranchant;
     
        QLineEdit *m_As;
        QLineEdit *m_Ass;
        QLineEdit *m_Asw;
     
        QPushButton *m_calculBeton;
     
     
    };
     
    #endif


    la class Beton

    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
    #ifndef BETON_H_INCLUDED
    #define BETON_H_INCLUDED
     
    class Beton
    {
    public:
    Beton();
     
    double hauteur;
     
    private:
     
    };
     
     
     
    #endif // BETON_H_INCLUDED
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "Beton.h"
     
    using namespace std;
     
    Beton::Beton()
    {
     
    }
    En vous remerciant d'avance :S

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut
    Il manque l'accolade fermante de ton constructeur.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 42
    Par défaut
    de quel constructeur? je ne vois pas d'accolade manquante?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut
    Celui de MaFenetre.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 42
    Par défaut
    non il y est, mais le copier coller de mon code c'est arrêté une ligne avant la fin.

    j'ai remis à jour

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut
    Ok.

    Par contre je ne saisis pas ton problème mais j'ai remarqué quelque chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        setLayout(layoutPrincipal);
    }
    // implementation slot
        Beton poutre; // nouvelle objet // Je pense qu'il serait mieux de mettre cette ligne dans la définition de la classe.
     
    void MaFenetre::calculBeton(double h)
    {
        poutre.hauteur=h;
    }
    Ensuite mettre hauteur en public dans Beton c'est moyen...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Passage des valeurs d'une form à l'autre
    Par Faible37 dans le forum C#
    Réponses: 10
    Dernier message: 07/03/2013, 11h24
  2. Passage de valeurs d'un logiciel à un autre.
    Par flamel dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 28/10/2011, 16h23
  3. [AC-2007] passage de valeurs d'un formulaire à un autre
    Par virtual_bug dans le forum IHM
    Réponses: 5
    Dernier message: 21/06/2011, 17h41
  4. Passage de valeur d'une page à l'autre
    Par DJuL- dans le forum ASP.NET
    Réponses: 21
    Dernier message: 20/07/2007, 09h59
  5. [C#] Passage de valeur d'une fenêtre à une autre
    Par groum999 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/09/2004, 14h12

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