Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] Fin de programme raté

    15 avril 2008 à 20:12:55

    Bonjour,

    eh oui, j'ai encore un problème :p .
    Bon :
    Dans le constructeur de ma fenêtre, j'affiche une image avec QPixmap et QLabel.
    Et pour vérifier la présence du fichier image, je fait isNull().
    Ensuite, si c'est effectivement null, j'affiche une boite de dialogue disant qu'il manque le fichier et que le programme va s'arrêter.
    J'émet un signal bug si c'est null et je le connect au slot quit() de qApp.

    Tout compile bien, mais à l'exécution, quand je retire le fichier pour tester,
    il m'affiche mon message d'erreur. Seulement une fois le QMessageBox fermer, le programme affiche la fenêtre comme si de rien était... (sans l'image quand même).

    Je pense que cela et du au fait que tout ce passe dans le constructeur.

    Voila le code d'affichage de l'image :
    m_labelRobot = new QLabel(this);
    m_robot = new QPixmap("robot.png");
    if (m_robot->isNull() == false)
    {
      // j'execute tout....
    }
    else
    {
      QMessageBox::critical(this, "Erreur", "L'image robot.png est manquante. Le programme va se fermer");
      emit bug();
    }
    
    //Connexion
    Qobject::connect(this, SIGNAL(bug()), qApp, SLOT(quit()));
    
    • Partager sur Facebook
    • Partager sur Twitter
      15 avril 2008 à 22:22:08

      pourrais tu nous montrer ton signal bug()
      • Partager sur Facebook
      • Partager sur Twitter
      :)
        15 avril 2008 à 22:27:29

        _ou plutot_, nous montrer ton fichier .h ?
        • Partager sur Facebook
        • Partager sur Twitter
        Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
          16 avril 2008 à 10:53:45

          Voila le header :
          #ifndef DEF_FENETREP
          #define DEF_FENETREP
          
          #include <QApplication>
          #include <QWidget>
          #include <QPushButton>
          #include <QMessageBox>
          #include <QInputDialog>
          #include <QLineEdit>
          #include <QLabel>
          #include <QLCDNumber>
          #include <QProgressBar>
          #include "Edit.h"
          #include "Robot.h"
          
          class FenetreP : public QWidget
          {
            Q_OBJECT
          
            public:
            FenetreP();
          
            public slots:
            void edit();
            void newRobot();
          
            signals:
            void bug();
          
            private:
            QPushButton *m_boutonNewRobot;
            QPushButton *m_boutonSave;
            QPushButton *m_boutonLoad;
            QPushButton *m_boutonEdit;
            Edit *m_edit;
            
            QLabel *m_labelNom;
            QLabel *m_nom;
            QLabel *m_labelVie;
            QLCDNumber *m_vie;
            QLabel *m_labelEnergie;
            QProgressBar *m_energie;
            
            QLabel *m_bug;
            QLabel *m_labelRobot;
            QPixmap *m_robot;
          };
          #endif
          
          • Partager sur Facebook
          • Partager sur Twitter

          [Qt] Fin de programme raté

          × 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