Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] Amétlioration TP - Problème de connection

    4 juin 2008 à 10:54:21

    Bonjour,

    J'essaie d'améliorer le programme du TP ZerClassGenerator chapitre 10 du tutoriel en ajoutant des boutons pour enregistrer le fichier texte et pour l'imprimer.
    J'ai un problème au niveau des actions appelées par les boutons :
    FenCodeGenere::FenCodeGenere(QString &code, QWidget *parent = 0) : QDialog(parent)
    {
    ...
            connect(b_print, SIGNAL(clicked()), this, SLOT(about()));
    	connect(b_saveAs, SIGNAL(clicked()), this, SLOT(accept()));
    	connect(b_close, SIGNAL(clicked()), this, SLOT(quit()));
    }
    
    void FenCodeGenere::about()
    {
       QMessageBox::about(this, tr("A propos..."),
    				tr("A propos de ce programme."));
    }
    


    Je veux connecter les boutons. J'ai fais un premier essai pour afficher un message en cliquant sur le bouton b_print mais rien de s'affiche mais les actions accept() et quit() des autres boutons fonctionnent... Pas de message d'erreur.

    • Partager sur Facebook
    • Partager sur Twitter
      4 juin 2008 à 11:03:28

      Voilà mon .h

      #ifndef HEADER_FENCODEGENERE
      #define HEADER_FENCODEGENERE
      
      #include <QtGui>
      #include <QMessageBox>
      
      class FenCodeGenere : public QDialog
      {
      	public:
      		FenCodeGenere(QString &code, QWidget *parent);
      
      	private:
              QTextEdit *codeGenere;
              QPushButton *b_close;
      		QPushButton *b_print;
      		QPushButton *b_saveAs;
      
      	private slots:
      		void about();
      		
      };
      
      #endif
      
      • Partager sur Facebook
      • Partager sur Twitter
        4 juin 2008 à 11:06:07

        il te foudais le mode console (une console s'affiche pendant que ton programme s'exécute).
        Donc avant de compiler ajoute dans ton *.pro
        CONFIG += console
        • Partager sur Facebook
        • Partager sur Twitter
        :)
          4 juin 2008 à 11:12:13

          J'ai rajouter CONFIG += console dans le fichier .pro et j'ai une erreur lors de la compilation :

          undefined reference to 'WinMain@16'
          • Partager sur Facebook
          • Partager sur Twitter
            4 juin 2008 à 11:18:51

            Après avoir ajouté cette ligne tu as bien fait :
            make clean
            qmake
            make


            ??
            • Partager sur Facebook
            • Partager sur Twitter
            :)
              4 juin 2008 à 11:25:27

              Autant pour moi, je n'avais pas fais de make clean.

              Lorsque j'execute le .exe, il m'ouvre mon widget et une console et il y a marqué :
              Object::connect: No such slot QDialog::about()
              Object::connect: No such slot QDialog::quit()

              ... et le bouton ne fonctionne pas
              • Partager sur Facebook
              • Partager sur Twitter
                4 juin 2008 à 11:36:29

                C'est normal.
                QDialog n'a que le slot eccept qui est bien de ça classe.
                Les autre que tu met vienne d'autre class
                Donc quit et about ne fonctionne pas et c'est bien ce que dis la console ils sont introuvable.

                http://doc.trolltech.com/4.4/qdialog.html
                http://doc.trolltech.com/4.4/qwidget.html#close
                • Partager sur Facebook
                • Partager sur Twitter
                :)
                  4 juin 2008 à 14:14:34

                  En fait, je voulais créer une méthode about() que je définis en dessous, mais j'avais oublier qu'il existait déjà une telle méthode, alors j'ai changé de nom.

                  Mais le plus gros prblème, c'était que j'avais tout simplement oublié de mettre le "Q_OBJECT" dans mon .h, donc il ne lisait pas mon slot

                  Merci
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Qt] Amétlioration TP - Problème de connection

                  × 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