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

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();
 
};
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
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.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
#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
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
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Démarrage de C:\Users\Faab'\Desktop\Stage\StageGraphique\debug\StageGraphique.exe...
çà compile mais çà veut pas afficher l'application je sais pas pourquoi...