Bonjour tout le monde,

Je suis en train de développer une application Qt dans le cadre de mon mémoire, et je rencontre un sérieux problème, bien entendu j'ai cherché sur le net et comme je n'ai pas trouvé ce que je cherché, je poste mon problème ici.

J'ai une fenêtre mère ou je peut visualiser des résultats, j'ai créé un bouton pour ouvrir une nouvelle fenêtre pour faire des réglages et les appliquer à la fenêtre mère, mon problème c'est que je ne sais pas comment faire retourner les valeur à la fenêtre mère pour pouvoir les appliquer, voilà un code test :

main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
#include <QtGui/QApplication>
#include "win_a.h"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    win_a w;
    w.show();
 
    return a.exec();
}
win_a.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
 
#ifndef WIN_A_H
#define WIN_A_H
 
#include <QWidget>
 
namespace Ui {
    class win_a;
}
 
class win_a : public QWidget
{
    Q_OBJECT
 
public:
    explicit win_a(QWidget *parent = 0);
    ~win_a();
 
public slots:
    void open_win();
 
private:
    Ui::win_a *ui;
};
 
#endif // WIN_A_H
win_b.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
 
#ifndef WIN_B_H
#define WIN_B_H
 
#include <QWidget>
 
namespace Ui {
    class win_b;
}
 
class win_b : public QWidget
{
    Q_OBJECT
 
public:
    explicit win_b(QWidget *parent = 0);
    ~win_b();
 
    QString texte;
 
public slots:
    void return_val();
 
private:
    Ui::win_b *ui;
};
 
#endif // WIN_B_H
win_a.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
 
#include "win_a.h"
#include "ui_win_a.h"
 
#include "win_b.h"
 
win_a::win_a(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::win_a)
{
    ui->setupUi(this);
 
    //connection
    connect(ui->but_a_quit, SIGNAL(clicked()), this, SLOT(close()));
    connect(ui->but_a_open, SIGNAL(clicked()), this, SLOT(open_win()));
 
}
 
void win_a::open_win()
{
    win_b *w = new win_b();
    w->show();
    //QString texte = w->show();
    //ui->label_a->setText(texte);
}
 
win_a::~win_a()
{
    delete ui;
}
win_b.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
 
#include "win_b.h"
#include "ui_win_b.h"
 
#include "win_a.h"
#include "ui_win_a.h"
 
win_b::win_b(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::win_b)
{
    ui->setupUi(this);
 
    //connection
    connect(ui->but_b_ok, SIGNAL(clicked()), this, SLOT(return_val()));
}
 
void win_b::return_val()
{
    texte = ui->edit_b->text();
    //return texte;
    this->close();
}
 
win_b::~win_b()
{
    delete ui;
}
Merci d'avance pour votre aide