Bonjour a tous, je travaille sur un petit parser de logs et j'ai actuellement beaucoup de soucis à imbriquer plusieurs interfaces graphiques dans le même programme. Ici, sUi , mUi et cUi correspondent à différents fichiers .Ui construis via Qt Designer.
Le programme n'a aucun soucis a commencer sur l'Ui de départ(cUi) , puis a passer sur l'Ui principale (mUi) , de même pour sUi. Le problème survient quand je veux revenir en arrière via mes boutons disconnect ou home , j'ai un segmentation fault et quand je regarde la composition du widget concerné il est marqué "<inaccessible>" dans la colonne valeur (d'où le segmentation fault ).

J'avoue être un peu à court de solution et je me demande si je passe a côté de quelque chose ou si je gère mal la gestion de plusieurs .ui (je n'ai pas trouvé grand chose concernant ceci sur internet) et je suis ouvert a toute remarque de ce côté

Voici mon code
Fichier source:
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
#include "clogparser.h"
 
cLogParser::cLogParser(QWidget *parent)
    : QMainWindow(parent)
{
    //Setting widgets
    this->setFixedSize(700,500);
    mWidget = new(QWidget);
    cWidget = new(QWidget);
    sWidget = new(QWidget);
    mUi = new(Ui_mWidget);
    cUi = new(Ui_cWidget);
    sUi = new(Ui_sWidget);
    mUi->setupUi(mWidget);
    cUi->setupUi(cWidget);
    sUi->setupUi(sWidget);
    setCentralWidget(cWidget);
 
 
 
    QObject::connect(sUi->disconnectButton,SIGNAL(clicked(bool)), this , SLOT(showConnectionUi()));
    QObject::connect(mUi->disconnectButton,SIGNAL(clicked(bool)), this , SLOT(showConnectionUi()));
    QObject::connect(cUi->connectionButton,SIGNAL(clicked(bool)), this , SLOT(showMainUi()));
    QObject::connect(sUi->homeButton,SIGNAL(clicked(bool)), this , SLOT(showMainUi()));
    QObject::connect(mUi->splitButton,SIGNAL(clicked(bool)), this , SLOT(showSplitterUi()));
}
 
cLogParser::~cLogParser()
{
    delete mUi;
    delete cUi;
    delete sUi;
}
 
void cLogParser::showMainUi()
{
    setCentralWidget(mWidget);
}
 
void cLogParser::showConnectionUi()
{
    setCentralWidget(cWidget);
}
 
void cLogParser::showSplitterUi()
{
    setCentralWidget(sWidget);
}
Fichier header:
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
#ifndef CLOGPARSER_H
#define CLOGPARSER_H
 
#include <QMainWindow>
 
#include "ui_connection.h"
#include "ui_main.h"
#include "ui_splitter.h"
 
class cLogParser : public QMainWindow
{
    Q_OBJECT
 
public:
    cLogParser(QWidget *parent = 0);
    ~cLogParser();
 
    QWidget *mWidget;
    QWidget *cWidget;
    QWidget *sWidget;
 
 
public slots:
    void showMainUi();
    void showConnectionUi();
    void showSplitterUi();
private:
    Ui_mWidget *mUi;
    Ui_cWidget *cUi;
    Ui_sWidget *sUi;
};
 
#endif // CLOGPARSER_H
Merci