DragonESpirit
Messages postés4Date d'inscriptiondimanche 4 février 2007StatutMembreDernière intervention 4 février 2018
-
Modifié le 4 févr. 2018 à 21:22
Bonjour,
Je suis en train de créer mon propre logiciel avec Qt et j'ai un petit souci que je n'arrive pas à comprendre...
Voilà ce que je veux faire : j'ai un bouton sur une première fenêtre (qui me sert de menu) qui, lorsque je clique dessus, ouvre une seconde fenêtre. Jusque là, pas de souci, tout fonctionne. Sauf que, lorsque je ferme la fenêtre de mon menu, l'autre fenêtre reste ouverte. Au final, je souhaiterais que tout se ferme en même temps.
Du coup, je veux faire de ma première fenêtre une parente de la seconde. Une petite modification de code plus tard, tout se compile, mais mon bouton ne fonctionne plus (rien ne s'affiche) et aucune erreur n'est détectée... Ci-dessous, les deux versions de mon code.
Voici le code qui fonctionne (ma fenêtre vide s'affiche) :
Fenetre menu (FenPrincipale.h) :
#ifndef FENPRINCIPALE_H
#define FENPRINCIPALE_H
#include <QtWidgets>
class FenPrincipale : public QWidget
{
Q_OBJECT
public:
FenPrincipale();
public slots:
void modifierResponsable();
private:
//Des boutons...
};
#endif // FENPRINCIPALE_H
FenPrincipale.cpp :
#include"FenPrincipale.h"
#include"FenModifierResponsable.h"
FenPrincipale::FenPrincipale():QWidget()
{
// Création de ma fenêtre...
QPushButton*modifier=newQPushButton(this);
modifier->setIcon(QIcon(QApplication::applicationDirPath()+"\\modifier_petit.png"));
connect(modifier,SIGNAL(clicked()),this,SLOT(modifierResponsable()));
}
void FenPrincipale::modifierResponsable()
{
QWidget*fenetreResp=new QWidget;
/* Ici, je construirai au final un objet d'une classe personnalisée héritant de QWidget.
J'utilise un QWidget tout simple pour tester où ça coince... */
fenetreResp->show();
// Ici tout fonctionne.
}
Par contre, le même code en modifiant juste la ligne ci-dessous ne fonctionne plus (rien ne s'affiche) !
QWidget *fenetreResp = new QWidget(this);
Si quelqu'un a la solution, ça me dépannerait bien puisque j'aurai au final beaucoup de fenêtres à gérer...