Bonjour,

J'ai un problème avec la fermeture et la connexion entre met deux fenêtres...

Voilà j'ai une fenêtre principale, qui va ouvrir un sous fenêtre QDialog.

Donc ce qui devrait normalement ce faire c'est :
Lancement de ma fenêtre principale => clic sur un bouton, ouvre la seconde fenêtre.
Si je quitte la première fenêtre logiquement le programme se ferme entièrement même si les sous fenêtre sont encore ouverte.

Si je clique sur la croix du ma fenêtre secondaire là ça marche, la fenêtre se ferme mais si je clique sur la croix de la fenêtre principale la par contre ça ferme la fenêtre mais pas vraiment... L'application reste dans le gestionnaire de tache... donc en temps que processus...

Voilà je cherche donc pourquoi j'ai cette erreur mais je vois pas...

listeur.cpp (fenêtre 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
 
#include "listeur.h"
 
FenListeur::FenListeur(QMainWindow *parent) : QMainWindow(parent)
{
    setupUi(this);
    setFixedSize(504,306);
    setWindowTitle(NOMLOGICIEL);
 
    Button_infos->setText("Infos");
 
    connect(Button_infos, SIGNAL(clicked()), this, SLOT(infos_film()));
}
 
void FenListeur::infos_film()
{
    FenInfos *fenInfos = new FenInfos(comboBox_film->model(), comboBox_film->currentIndex(), 0);
    fenInfos->setAttribute(Qt::WA_DeleteOnClose);
    fenInfos->show();
}
listeur.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
 
#ifndef LISTEUR_H
#define LISTEUR_H
 
#include <QPlastiqueStyle>
#include <QSharedMemory>
#include <QDesktopServices>
#include <QFileDialog>
#include <QDirIterator>
#include <QDebug>
 
#include "ui_listeur.h"
#include "constante.h"
#include "infos_film.h"
 
namespace Ui
{
    class FenListeur;
}
 
class FenListeur : public QMainWindow, private Ui::FenListeur
{
    Q_OBJECT
 
    public:
        FenListeur(QMainWindow *parent = 0);
 
    private slots:
        void infos_film();
};
 
#endif // LISTEUR_H
infos_film.cpp (fenêtre 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
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
57
58
59
 
#include "infos_film.h"
 
FenInfos::FenInfos(QAbstractItemModel *model, int currentIndex, QWidget *parent) : QDialog(parent), mapper(new QDataWidgetMapper(this))
{
    QVBoxLayout *layout = new QVBoxLayout();
    QLabel *label_titre = new QLabel("Chargement en cours...");
    layout->addWidget(label_titre);
    setLayout(layout);
 
    mapper->setModel(model);
    mapper->setCurrentIndex(currentIndex);
 
    telechargement("avatar");
}
 
void FenInfos::affichage(const QList<QString> &infos)
{
    if(infos.isEmpty())
    {
        QMessageBox::information(this, "Erreur !", "Aucun film n'a été sélectionné, aucun résumé possible !");
    }
 
    QVBoxLayout *layout = new QVBoxLayout();
 
    QLabel *label_image = new QLabel(this);
    label_image->setPixmap(QPixmap("image_film.jpg"));
    layout->addWidget(label_image);
 
    QLabel *label_titre = new QLabel(infos[0]);
    layout->addWidget(label_titre);
 
    QLabel *label_date_sortie = new QLabel(infos[1]);
    layout->addWidget(label_date_sortie);
 
    QLabel *label_realise_par = new QLabel(infos[2]);
    layout->addWidget(label_realise_par);
 
    QLabel *label_titre_original = new QLabel(infos[3]);
    layout->addWidget(label_titre_original);
 
    QLabel *label_genre = new QLabel(infos[4]);
    layout->addWidget(label_genre);
 
    QLabel *label_duree = new QLabel(infos[5]);
    layout->addWidget(label_duree);
 
    QLabel *label_annee_production = new QLabel(infos[6]);
    layout->addWidget(label_annee_production);
 
    QLabel *label_distributeur = new QLabel(infos[7]);
    layout->addWidget(label_distributeur);
 
    QTextBrowser *textbrowser_synopsis = new QTextBrowser;
    textbrowser_synopsis->setHtml(infos[8]);
    layout->addWidget(textbrowser_synopsis);
 
    setLayout(layout);
}
infos_film.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
 
#ifndef INFOS_FILM_H
#define INFOS_FILM_H
 
#include <QVBoxLayout>
#include <QLabel>
#include <QTextBrowser>
#include <QNetworkReply>
#include <QXmlStreamReader>
#include <QMessageBox>
#include <QProgressBar>
#include <QDataWidgetMapper>
 
class FenInfos : public QDialog
{
    Q_OBJECT
 
    public:
        FenInfos(QAbstractItemModel *model, int currentIndex, QWidget *parent = 0);
        QProgressBar *progressBar;
 
    private:
        QDataWidgetMapper *mapper;
 
    private slots:
        void affichage(const QList<QString> &infos);
};
 
#endif // INFOS_FILM_H
PS : Je dois mal le faire mais j'aurais aussi aimé faire en sorte de créer un petit QLabel avec dedans "Chargement en cours..." et dès qu'on arrive au slot affichage, on affiche le vrai contenu de la fenêtre mais, j'ai pas le contenu de la fenêtre j'ai du début à la fin la QLabel "Chargement en cours..." sans jamais voir le contenu graphique du slot affichage

Merci et bonne journée