Bonjour,
J'ai me fenêtre principale "MainWindow" composé d'un bouton radio "Droite", d'un bouton radio "Point",... et d'un bouton calculer.
J'aimerai que lorsque l'utilisateur clique sur calculer avec le bouton radio "Droite" coché, çà fasse les calculs qu'il faut et que lorsque le radio bouton "Point" est activé çà m'ouvre une autre fenêtre qui m'affiche un tableau composé de valeurs stockés dans des tableaux déclarés dans MainWindow.
Vous allez mieux comprendre avec le code
MainWindow.h
MainWindow.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 class Point; class MainWindow : public QDialog { Q_OBJECT private: Ui::MainWindow uiMW; Ui::Fichiers uiFic; Ui::Dialog uiPoint; Fichiers *fic; Point *point; double xIni, xFin, yIni, yFin, zIni, zFin, theta1, theta2, distance2points; int nbPoints; double *tableauXParfait; double *tableauYParfait; double *tableauZParfait; double *tableauXDefaut; double *tableauYDefaut; double *tableauZDefaut; double *tableauErreurX; double *tableauErreurY; double *tableauErreurZ; double *tableauErreurTotale; public: MainWindow(QWidget *parent = 0); void ouvrirPoint(); private slots: void reinitialiser(); void ouvrirFichier(); void calculer(); void enregistrerCalcul(); };
Point.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 MainWindow::MainWindow(QWidget *parent) : QDialog() { setFixedSize(820, 820); uiMW.setupUi(this); fic = new Fichiers(this); point = new Point(this); tableauXParfait = new double[nbPoints]; ... QObject::connect(uiMW.BoutonReinitialiser, SIGNAL(clicked()), this, SLOT(reinitialiser())); QObject::connect(uiMW.BoutonFichiers, SIGNAL(clicked()), this, SLOT(ouvrirFichier())); QObject::connect(uiMW.BoutonValider, SIGNAL(clicked()), this, SLOT(calculer())); QObject::connect(uiMW.BoutonEnregistreCalcul, SIGNAL(clicked()), this, SLOT(enregistrerCalcul())); } void MainWindow::ouvrirFichier() { fic->show(); } void MainWindow::ouvrirPoint() { point->show(); // C'est comme çà qu'il faut procéder ou autrement? Merci de votre aide... } void MainWindow::calculer() { xIni = uiMW.champSaisieXIni->value(); // récupère la valeur saisie de x initial xFin = uiMW.champSaisieXFin->value(); // récupère la valeur saisie de x final yIni = uiMW.champSaisieYIni->value(); // récupère la valeur saisie de y initial if(uiMW.radioBoutonPoint->isChecked()) { tableauXDefaut[0] = xIni; tableauYDefaut[0] = yIni; tableauZDefaut[0] = zIni; tableauXParfait[0] = xIni; tableauYParfait[0] = yIni; tableauZParfait[0] = zIni; calculerVecteurSortieMachineParfaite(tableauXParfait, tableauYParfait, tableauZParfait, theta1, theta2, 1); calculerVecteurSortieMachineDefaut(tableauXDefaut, tableauYDefaut, tableauZDefaut, theta1, theta2, 1, fichierPosX, fichierPosY, fichierPosZ, fichierPosTheta1, fichierPosTheta2, fichierAutresParametres); ouvrirPoint(); } else { .... }
Point.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 #include "ihmPoint.h" #include "ihm.h" #include "maFenetre.h" #include "Fichiers.h" class Point : public QDialog { Q_OBJECT private: Ui::Dialog uiPoint; MainWindow *mw; public: Point(QWidget *parent = 0); }; #endif // POINT_H
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Point::Point(QWidget *parent) : QDialog(parent) { uiPoint.setupUi(this); mw = new MainWindow(this); double erreurX = mw->getTableauXDefaut(0) - mw->getTableauXParfait(0); // erreur sur l'axe x correspondant à la différence entre la machine réelle et la machine parfaite double erreurY = mw->getTableauYDefaut(0) - mw->getTableauYParfait(0); // erreur sur l'axe y correspondant à la différence entre la machine réelle et la machine parfaite double erreurZ = mw->getTableauZDefaut(0) - mw->getTableauZParfait(0);; // erreur sur l'axe z correspondant à la différence entre la machine réelle et la machine parfaite ... }
Le compilateur m'affiche :
çà compile mais çà veut pas afficher l'application je sais pas pourquoi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Démarrage de C:\Users\Faab'\Desktop\Stage\StageGraphique\debug\StageGraphique.exe...
![]()
Partager