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.
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 #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 .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
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 .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
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 main
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() { }
Merci d'avance!
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(); }
Partager