Voila l'erreur que je deteste le plus et la rien a y faire je ne comprend pas !
sa fait moins d'un moi que je fais du Qt donc j'ai beaucoup de l'accune !

et je suis nouveau ici ^^ !

alors mon code :
main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#include <QApplication>
#include <QtGui>
#include "FenPrincipale.h"
 
int main (int argc, char *argv[])
{
    QApplication app(argc,argv);
 
    FenPrincipale *fenetre = new FenPrincipale();
    fenetre->show(); 
 
    return app.exec();
}
FenPrincipale.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
33
34
35
36
37
38
39
40
41
 
#ifndef DEF_FENPRINCIPALE
#define DEF_FENPRINCIPALE
 
#include <QtGui>
#include <QMessageBox>
 
class FenPrincipale : public QMainWindow
{
Q_OBJECT
    public:
        FenPrincipale();
 
    public slots:
        void nouveau();
	void ouvrir();
	void enregistrer();
	void enregistrerSous();
 
    private:
         QMenu *m_menuFichier;
             QAction *m_actionNouveau;
	     QAction *m_actionOuvrir;
             QAction *m_actionQuitter;
	     QAction *m_actionEnregistrer;
	     QAction *m_actionEnregistrerSous;
         QMenu *m_menuEdition;
         QMenu *m_menuAffichage;
 
	 QToolBar *m_toolBarFichier;
 
         QStatusBar *m_barreEtat;
 
 
         QMdiArea *m_zoneCentrale;
	 QMdiSubWindow *m_sousFenetre1;
			QString *m_chemin;
			QTextEdit *m_zoneTexte1;
			QString *m_texte;
};
#endif
FenPrincipale.cpp
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include "FenPrincipale.h"
 
FenPrincipale::FenPrincipale() // constructeur
{
/* caracteristique fenetre */
resize(600,400);
 
/* creation du menu */
	// menu
	m_menuFichier = menuBar()->addMenu("&Fichier");
	m_menuEdition = menuBar()->addMenu("&Edition");
	m_menuAffichage = menuBar()->addMenu("&Affichage");
	//action
	m_actionNouveau = m_menuFichier->addAction("&Nouveau");
	m_actionNouveau->setShortcut(QKeySequence("Ctrl+N"));
	m_actionNouveau->setIcon(QIcon(QCoreApplication::applicationDirPath()+"/images/nouveau.png"));
 
	m_actionOuvrir = m_menuFichier->addAction("&Ouvrir");
	m_actionOuvrir->setShortcut(QKeySequence("Ctrl+O"));
	m_actionOuvrir->setIcon(QIcon(QCoreApplication::applicationDirPath()+"/images/ouvrir.png"));
 
	m_actionEnregistrer = m_menuFichier->addAction("&Enregistrer");
	m_actionEnregistrer->setShortcut(QKeySequence("Ctrl+S"));
	m_actionEnregistrer->setIcon(QIcon(QCoreApplication::applicationDirPath()+"/images/enregistrer.png"));
 
	m_actionEnregistrerSous = m_menuFichier->addAction("&Enregistrer sous");
	m_actionEnregistrerSous->setShortcut(QKeySequence(Qt::SHIFT + Qt::CTRL + Qt::Key_Q));
 
 
	m_actionQuitter = m_menuFichier->addAction("&Quitter");
	m_actionQuitter->setShortcut(QKeySequence("Ctrl+Q"));
	m_actionQuitter->setIcon(QIcon(QCoreApplication::applicationDirPath()+"/images/quitter.png"));
 
	// creation de la barre d'outil
	m_toolBarFichier = addToolBar("bar d'outil");
 
	m_toolBarFichier->addAction(m_actionNouveau);
	m_toolBarFichier->addAction(m_actionOuvrir);
	m_toolBarFichier->addAction(m_actionEnregistrer);
	m_toolBarFichier->addAction(m_actionQuitter);
 
	m_toolBarFichier->addSeparator();
 
	// creation de la zone centrale
	m_zoneCentrale = new QMdiArea;
	setCentralWidget(m_zoneCentrale);
 
	// creation de la barre d'etat
	m_barreEtat = statusBar();
	m_actionQuitter->setStatusTip("Quitte le programme ...");
	m_actionNouveau->setStatusTip("Ouvre un nouveau fichier ...");
	m_actionOuvrir->setStatusTip("Ouvrir un fichier deja existant ...");
	m_actionEnregistrer->setStatusTip("Enregistrer le fichier ...");
	m_actionEnregistrerSous->setStatusTip("Enregistrer le fichier à un emplacement precis ...");
 
	// connection des actions et boutons
	connect(m_actionQuitter, SIGNAL(triggered()),qApp,SLOT(quit()));
	connect(m_actionNouveau, SIGNAL(triggered()),this,SLOT(nouveau()));
	connect(m_actionOuvrir, SIGNAL(triggered()),this,SLOT(ouvrir()));
	connect(m_actionEnregistrer, SIGNAL(triggered()),this,SLOT(enregistrer()));
	connect(m_actionEnregistrerSous, SIGNAL(triggered()),this,SLOT(enregistrerSous()));
 
// initialisation de quelque atribue
m_chemin = new QString;
}
 
 
void FenPrincipale::nouveau()
{
*m_chemin = "";
 
m_zoneCentrale = new QMdiArea;
 
m_zoneTexte1 = new QTextEdit;
m_sousFenetre1 = m_zoneCentrale->addSubWindow(m_zoneTexte1);
 
setCentralWidget(m_zoneCentrale);     
}
 
 
void FenPrincipale::ouvrir()
{
	*m_chemin = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Fichier Texte (*.txt)");
 
	m_zoneCentrale = new QMdiArea;
 
	m_zoneTexte1 = new QTextEdit;
 
	m_texte = new QString;
	QFile fichier(*m_chemin);
        if(fichier.open(QIODevice::ReadOnly | QIODevice::Text))
	{
	     *m_texte = fichier.readAll();
	     fichier.close();
	}
	else *m_texte = "Impossible d'ouvrir le fichier !";
 
        m_zoneTexte1->setText(*m_texte);
        m_sousFenetre1 = m_zoneCentrale->addSubWindow(m_zoneTexte1);
 
        setCentralWidget(m_zoneCentrale);    
}
 
 
 
void FenPrincipale::enregistrer()
{
	if(m_chemin->isEmpty())
	    {
    *m_chemin = QFileDialog::getSaveFileName(this, "Ouvrir un fichier", QString(), "Fichier Texte (*.txt)");
	    }
	*m_texte = m_zoneTexte1->toPlainText();
 
	QFile fichier(*m_chemin);
	if(fichier.open(QIODevice::WriteOnly | QIODevice::Text))
	{
	     QTextStream flux(&fichier);
	     flux << *m_texte;
	     fichier.close();
	}
	else QMessageBox::critical(NULL,"Erreur","Impossible d'enregistrer !");  
}
 
 
void FenPrincipale::enregistrerSous()
{
	*m_texte = m_zoneTexte1->toPlainText();
	*m_chemin = QFileDialog::getSaveFileName(this, "Ouvrir un fichier", QString(), "Fichier Texte (*.txt)");
	QFile fichier(*m_chemin);
	if(fichier.open(QIODevice::WriteOnly | QIODevice::Text))
	{
	     QTextStream flux(&fichier);
	     flux << *m_texte;
	     fichier.close();
	}
	else QMessageBox::critical(NULL,"Erreur","Impossible d'enregistrer !");
 
}
alors voila je me repete peu etre un peu mai je prefere préciser mon programme compile c est juste une erreur de segementation !

petite indication, mon programme plante quand je fait nouveau fichier et puis apres quand je fait enregistrer et boom erreur de segmentation !

merci pour vautre aide