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