Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] Mon apllication plante!

pourtant, le copilo ne dit rien!

Sujet résolu
    13 juin 2008 à 8:44:01

    Bonjour amis Zéros...

    J'ai un petit soucis avec un petit programme!

    C'est mon tout premier, et il est largement inspiré du ZeroClassGenerator! Il est légèrement inutile, mais c'est seulement un entrainement!

    Lors de la compilation, le compilo ne releve aucune erreur, pourtant quand je clique sur "OK", Window m'affiche son message d'erreur et me dit qu'il doit fermer l'application en cours!

    Je ne trouve pas l'erreur, je vous mets toutes les pages, dites moi si vous voyez l'erreur!

    Citation : Main.cpp

    #include <QApplication>
    #include <QtGui>
    #include "principale.h"
    #include "Message.h"
    
    
    int main(int argc, char **argv)
    {
        QApplication    app(argc, argv);
        QApplication::setStyle(new QPlastiqueStyle);
    
    
        Principale fenetre;
    
        fenetre.show();
    
        return app.exec();
    }
    


    Citation : Message.cpp

    #include "Message.h"
    
    Message::Message(QString &message)
    {
        //Layout général
    
        QVBoxLayout *layoutGeneral = new QVBoxLayout;
    
    
        QTextEdit *zoneTexte = new QTextEdit;
        zoneTexte->setPlainText(message);
        zoneTexte->setReadOnly(true);
        zoneTexte->setLineWrapMode(QTextEdit::NoWrap);
        layoutGeneral->addWidget(zoneTexte);
    
        QPushButton *quitter = new QPushButton("Quitter");
        layoutGeneral->addWidget(quitter);
    
        setLayout(layoutGeneral);
    
        connect(quitter , SIGNAL(clicked()) , this , SLOT(quit()));
    }
    


    Citation : Message.h

    #ifndef HEADER_FENMESSAGE
    #define HEADER_FENMESSAGE
    
    #include <QtGui>
    
    class Message : public QDialog
    {
        Q_OBJECT
    
        public:
            Message(QString &message);
    
        private:
        QVBoxLayout *layoutGeneral;
        QTextEdit *zoneTexte;
        QPushButton *quitter;
    };
    
    #endif
    


    Citation : principale.cpp

    #include "principale.h"
    #include "Message.h"
    
    Principale::Principale(QWidget *parent)
    {
          //GroupBox ENTETE
    
       QGroupBox *entete = new QGroupBox("Entête" , this);//Création du premier GroupBox
    
       QLineEdit *expediteur = new QLineEdit;
       QLineEdit *destinataire = new QLineEdit;//Création des 3 champs
       QLineEdit *date = new QLineEdit;
    
    
       QFormLayout *layoutEntete = new QFormLayout;//Création du tableau
       layoutEntete->addRow("Expediteur :", expediteur);
       layoutEntete->addRow("Destinataire :", destinataire);//Ajout des champs au tableau
       layoutEntete->addRow("Date :", date);
    
       entete->setLayout(layoutEntete);//Insertion du tableau dans le GroupBox
    
          //GroupBox CORPS
    
       QGroupBox *corps = new QGroupBox("Corps du message" , this);//Création du 2eme GroupBox
    
       QLineEdit *texte = new QLineEdit;
       QSpinBox *nombre = new QSpinBox;//Création des champs
          nombre->setMaximum(200);
          nombre->setMinimum(1);    //Gestion du SpinBox
       QCheckBox *checkbox = new QCheckBox("Oui" , this);
       QTextEdit *fin = new QTextEdit;
    
       QFormLayout *layoutCorps = new QFormLayout;//Création du tableau
       layoutCorps->addRow("Texte à répéter :" , texte);
       layoutCorps->addRow("Nombre de répétitions :" , nombre);
       layoutCorps->addRow("Afficher un texte final :" ,checkbox);//Ajout des champs au tableau
       layoutCorps->addRow("Texte de fin :" , fin);
    
       corps->setLayout(layoutCorps);
    
          //GroupBox MESSAGE
    
       QGroupBox *message = new QGroupBox("Générer le message" , this);//Création du dernier GroupBox
    
       QPushButton *bouton = new QPushButton("Ok");//Création du bouton
       QPushButton *quitter = new QPushButton("Quitter");//Création du bouton
    
       QVBoxLayout *layoutMessage = new QVBoxLayout;//Tableau Vertical
       layoutMessage->addWidget(bouton);
       layoutMessage->addWidget(quitter);
    
       message->setLayout(layoutMessage);//Insertion du tableau dans le GroupBox
    
       QVBoxLayout *layoutGeneral = new QVBoxLayout;
       layoutGeneral->addWidget(entete);
       layoutGeneral->addWidget(corps);
       layoutGeneral->addWidget(message);
       setLayout(layoutGeneral);
    
       connect(quitter , SIGNAL(clicked()) , qApp , SLOT(quit()));
       connect(bouton , SIGNAL(clicked()) , this , SLOT(genererMessage()));
    }
    
    void Principale::genererMessage()
    {
    
        QString message;
    
        message +="De : " + expediteur->text() + "\n";
        message +="A : " + destinataire->text() + "\n";
        message +="Le : " + date->text() + "\n";
        message +="\n";
    
        int i = 1;
    
        while (i <= nombre->value())
        {
            message += texte->text();
            i++;
        }
    
        message +="\n";
    
        if(checkbox->isChecked())
        {
            message += fin->toPlainText();
        }
    
        Message *page = new Message(message);
        page->exec();
    }
    


    et pour finir :

    Citation : principale.h

    #ifndef HEADER_FENCALCULATRICE
    #define HEADER_FENCALCULATRICE

    #include <QtGui>

    class Principale : public QWidget
    {
    Q_OBJECT

    public:
    Principale(QWidget *parent = 0);

    public slots:
    void genererMessage();

    private:
    QGroupBox *entete;
    QLineEdit *expediteur;
    QLineEdit *destinataire;
    QLineEdit *date;
    QFormLayout *layoutEntete;
    QGroupBox *corps;
    QLineEdit *texte;
    QSpinBox *nombre;
    QCheckBox *checkbox;
    QTextEdit *fin;
    QFormLayout *layoutCorps;
    QGroupBox *message;
    QPushButton *bouton;
    QPushButton *quitter;
    QVBoxLayout *layoutGeneral;

    };

    #endif



    Voila! Merci d'avance les Zéros!
    • Partager sur Facebook
    • Partager sur Twitter
      13 juin 2008 à 9:19:25

      Merci de ta reponse...

      Si j'ai bien compris, le probleme vient du fait que j'ai écris "QMachin qVariable;" dans mon *.h et que j'ai remis QMachin qVariable = new QMachin;" dans le *.cpp?
      • Partager sur Facebook
      • Partager sur Twitter
        14 juin 2008 à 15:22:40

        Merci,le probleme est réglé et j'ai compris... Exellent mongaulois!
        • Partager sur Facebook
        • Partager sur Twitter

        [Qt] Mon apllication plante!

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown