Salut à tous

Je suis toujours débutant en C++, et je travaille actuellement sur le créateur de classes d'un cours C++ . Cependant, lorsque j'utilise la méthode QTextEdit->setPlainText dans un SLOT, le programme cesse de fonctionner. Bizarrement si j'utilise la méthode ailleurs tout va. Et si j'enlève l'appel à la fonction du SLOT tout va aussi. Savez-vous de quoi vient ce problème ? Voici mes codes :

fenetrePrincipale.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
#include "fenetrePrincipale.h"
 
fenetrePrincipale::fenetrePrincipale(QWidget *parent) :
    QWidget(parent)
{
    QVBoxLayout *conteneur = new QVBoxLayout;
    QVBoxLayout *conteneurOptions = new QVBoxLayout;
    QVBoxLayout *conteneurCommentaires = new QVBoxLayout;
    QGroupBox *definition = new QGroupBox("Définition de la classe");
    QGroupBox *options = new QGroupBox("Options");
    QGroupBox *commentaires = new QGroupBox("Commentaires");
    QFormLayout *formCommentaires = new QFormLayout;
    QFormLayout *formDefinition = new QFormLayout;
 
    QLineEdit *nomClasse = new QLineEdit;
    QLineEdit *mereClasse = new QLineEdit;
    QLineEdit *auteurClasse = new QLineEdit;
 
    QDateEdit *dateCreation = new QDateEdit;
    QTextEdit *roleClasse = new QTextEdit();
 
    QCheckBox *protegerHeader = new QCheckBox("Protéger le header contre les inclusions multiples");
    QCheckBox *genererConstructeur = new QCheckBox("Générer un constructeur par défaut");
    QCheckBox *genererDestructeur = new QCheckBox("Générer un destructeur par défaut");
    QCheckBox *ajouterCommentaires = new QCheckBox("Ajouter des commentaires");
 
    QPushButton *boutonValider = new QPushButton("Valider");
 
 
    conteneurOptions->addWidget(protegerHeader);
    conteneurOptions->addWidget(genererConstructeur);
    conteneurOptions->addWidget(genererDestructeur);
    options->setLayout(conteneurOptions);
 
    formDefinition->addRow("Nom de la classe :", nomClasse);
    formDefinition->addRow("Mère de la classe :", mereClasse);
 
    conteneurCommentaires->addWidget(ajouterCommentaires);
    formCommentaires->addRow("Auteur de la classe :", auteurClasse);
    formCommentaires->addRow("Date de la classe :", dateCreation);
    formCommentaires->addRow("Rôle de la classe :", roleClasse);
    conteneurCommentaires->addLayout(formCommentaires);
    commentaires->setLayout(conteneurCommentaires);
 
    definition->setLayout(formDefinition);
 
    conteneur->addWidget(definition);
    conteneur->addWidget(options);
    conteneur->addWidget(commentaires);
    conteneur->addWidget(boutonValider);
 
    this->setLayout(conteneur);
    QObject::connect(boutonValider, SIGNAL(clicked()), this, SLOT(creerContenu()));
}
 
void fenetrePrincipale::afficherContenu(QString contenu) {
 
}
 
QString fenetrePrincipale::creerContenu() {
    QString contenu("");
    if(ajouterCommentaires->checkState()) {
        contenu += "\n/*";
        if (auteurClasse->text() != "") {
                contenu += "\nAuteur : " + auteurClasse->text();
        }
        contenu += "\nDate de création : " + dateCreation->date().toString();
        if (roleClasse->toPlainText() != "") {
            contenu += "\nCommentaires : " + roleClasse->toPlainText();
        }
        contenu += "\n*/\n\n";
    }
    if (protegerHeader->checkState()) {
        contenu += "#ifndef FENETREPRINCIPALE_H\n";
        contenu += "#define FENETREPRINCIPALE_H\n";
    }
    contenu += "class " + nomClasse->text();
    if (mereClasse->text() != "") {
        contenu += " : public " + mereClasse->text();
    }
    contenu += "\n{\n";
    contenu += "    public:\n";
    if (genererConstructeur->checkState()) {
        contenu += "        " + nomClasse->text() + "\n";
    } else {
        contenu += "        \n";
    }
    if (genererDestructeur->checkState()) {
        contenu += "        ~" + nomClasse->text() + "\n";
    } else {
        contenu += "        \n";
    }
    contenu += "        \n";
    contenu += "        \n";
 
    contenu += "    protected:\n";
    contenu += "        \n";
    contenu += "        \n";
    contenu += "        \n";
    contenu += "        \n";
 
    contenu += "    private:\n";
    contenu += "        \n";
    contenu += "        \n";
    contenu += "        \n";
    contenu += "        \n";
 
    if (protegerHeader->checkState()) {
        contenu += "#endif // FENETREPRINCIPALE_H\n";
    }
 
    contenu += "\n}";
    roleClasse->setPlainText(contenu);
    return contenu;
}
fenetrePrincipale.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
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef FENETREPRINCIPALE_H
#define FENETREPRINCIPALE_H
 
#include <QTGui>
#include <QVBoxLayout>
#include <QWidget>
#include <QGroupBox>
#include <QFormLayout>
#include <QLineEdit>
#include <QDateEdit>
#include <QTextEdit>
#include <QCheckBox>
#include <QPushButton>
 
class fenetrePrincipale : public QWidget
{
    Q_OBJECT
public:
    explicit fenetrePrincipale(QWidget *parent = 0);
 
signals:
 
public slots:
    void afficherContenu(QString contenu);
    QString creerContenu();
 
 
private:
    QVBoxLayout *conteneur;
    QVBoxLayout *conteneurOptions;
    QVBoxLayout *conteneurCommentaires;
    QGroupBox *definition;
    QGroupBox *options;
    QGroupBox *commentaires;
    QFormLayout *formCommentaires;
    QFormLayout *formDefinition;
 
    QLineEdit *nomClasse;
    QLineEdit *mereClasse;
    QLineEdit *auteurClasse;
 
    QDateEdit *dateCreation;
    QTextEdit *roleClasse;
 
    QCheckBox *protegerHeader;
    QCheckBox *genererConstructeur;
    QCheckBox *genererDestructeur;
    QCheckBox *ajouterCommentaires;
 
    QPushButton *boutonValider;
 
};
 
#endif // FENETREPRINCIPALE_H
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
15
16
17
#include <QTGui>
#include "fenetrePrincipale.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QString locale = QLocale::system().name().section('_', 0, 0);
QTranslator translator;
translator.load(QString("qt_") + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&translator);
 
fenetrePrincipale *maFenetre = new fenetrePrincipale;
maFenetre->show();
 
return app.exec();
}
Merci d'avance

Thomas