Salut à tous!
Je suis confrone à un problème de slot. Je voudrai en effet ouvrir une fenetre secondaire héritant d'une fentre principale.

Le problème ici est que le slot pour l'accès à la fenetre secondaire ne fonctionne pas. Celui de la fermeture de l'application fonctionne pourtant.

Je suis un peu perdu quant à l'implémentaion de la fonction "ouvrirFenetre1" de la fenetre principale qui me permettra d'acceder à la fenetre secondaire.

Une fois de plus, mon problème est de pouvoir accéder à la fenetre secondaire en cliquant un bouton de la fenetre principale. Est-ce possible avec l'héritage?

Je serais ravi de toute aide.

Fichier .h de la fenetre principale.
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 DEF_HERITAGE
#define DEF_HERITAGE
 
 
#include <QtGui>
 
 
class Heritage: public QMainWindow
{
    Q_OBJECT
 
public:
    Heritage();
    ~Heritage();
 
public slots:
    void ouvrirFenetre1();
 
protected:
    QMainWindow *m_zoneCentrale;
    QPushButton *m_fenetre1, *m_quitter;
 
 
};
 
#endif // HERITAGE_H
Fichier .cpp de la fenetre principale
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
#include "Heritage.h"
 
Heritage::Heritage()
{
    m_zoneCentrale = new QMainWindow;
    m_zoneCentrale->setFixedSize(400, 200);
 
    m_fenetre1 = new QPushButton("Ouvrir fenetre1", m_zoneCentrale);
    m_fenetre1->move(50, 150);
 
    m_quitter = new QPushButton("Quitter", m_zoneCentrale);
    m_quitter->move(200, 150);
 
 
    connect(m_fenetre1, SIGNAL(clicked()), this, SLOT(ouvrirFenetre1()));
    connect(m_quitter, SIGNAL(clicked()), qApp, SLOT(quit()));
 
    setWindowTitle("Heritage");
 
    setCentralWidget(m_zoneCentrale);
}
 
void Heritage::ouvrirFenetre1()
{
     m_fenetre1->show();
}
 
Heritage::~Heritage()
{}
Fichier .h de la fenetre secondaire
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
#ifndef DEF_FENETRESECONDAIRE1
#define DEF_FENETRESECONDAIRE1
 
#include "Heritage.h"
 
#include<QtGui>
 
class FenetreSecondaire1: public Heritage
{
    Q_OBJECT
 
    FenetreSecondaire1();
    ~FenetreSecondaire1();
 
public:
 
private slots:
 
private:
    QWidget *m_fen1;
 
};
 
#endif // FENETRESECONDAIRE1_H
Fichier .cpp de la fenetre secondaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "FenetreSecondaire1.h"
 
FenetreSecondaire1::FenetreSecondaire1()
{
    m_fen1 = new QWidget;
    m_fen1->setFixedSize(350, 150);
 
}
 
FenetreSecondaire1::~FenetreSecondaire1()
{
 
}
Fichier main
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
#include <QApplication>
#include "Heritage.h"
#include <QtGui>
 
 
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Heritage fen;
 
    fen.show();
 
    return app.exec();
}
Merci d'avance!