Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qt : QFtp

les signaux?!?

Sujet résolu
    6 décembre 2007 à 17:06:58

    Bonjour,

    Comme vous vous en doutez je m'intéresse à Qt et j'ai voulu faire un programme gérant le ftp (les fonctions de base).
    En parcourant la documentation Qt, j'ai vu qu'il existait des signaux spécifiques pour QFtp que voici: page de la doc.
    J'ai voulu les implémenter avec un petit connect. Voici le code en simplifié :

    ftp.h
    1. #ifndef FTP_H
    2. #define FTP_H
    3. #include <QWidget>
    4. #include <QFtp>
    5. class PageFTP : public QWidget
    6. {
    7.         Q_OBJECT
    8. public:
    9.         PageFTP(QWidget *parent = 0);
    10. public slots:
    11.         void stateChangedSlot (int state);
    12. private:
    13.         QFtp *ftp;
    14. }
    15. #endif


    ftp.cpp
    1. #include <QtGui>
    2. #include "ftp.h"
    3. PageFTP::PageFTP(QWidget *parent)
    4. : QWidget(parent)
    5. {
    6.         /* *********
    7.                 Connexion
    8.                 ********* */
    9.         ftp = new QFtp(parent);
    10.         connect(ftp, SIGNAL(stateChanged(int state)),
    11.                         this, SLOT(stateChangedSlot(int state)));
    12. }
    13. void PageFTP::stateChangedSlot (int state)
    14. {
    15.         switch (state)
    16.         {
    17.                 case (QFtp::Unconnected) :
    18.                         writeLogSlot("No Connection to Host\n");
    19.                         break;
    20.                 case (QFtp::HostLookup) :
    21.                         writeLogSlot("Searching for Host\n");
    22.                         break;
    23.                 case (QFtp::Connecting) :
    24.                         writeLogSlot("Connecting to Host\n");
    25.                         break;
    26.                 case (QFtp::Connected) :
    27.                         writeLogSlot("Connected to Host\n");
    28.                         break;
    29.                 case (QFtp::LoggedIn) :
    30.                         writeLogSlot("Logged to Host\n");
    31.                         break;
    32.                 case (QFtp::Closing) :
    33.                         writeLogSlot("Closing Connection to Host\n");
    34.                         break;
    35.         }
    36. }


    Sachant que la fonction writeLogSlot(const char*); se charge d'écrire ce qu'on lui envoie dans un log.

    La compilation se passe bien, mais il y à un problème lors de l'exécution :
    1. Object::connect: No such signal QFtp::stateChanged(int state)

    Alors que la doc dit qu'il existe!

    (et cela se passe pour tous les signaux venant de QFtp)

    Je ne comprend pas...

    Merci d'avance pour votre lumière
    • Partager sur Facebook
    • Partager sur Twitter
      6 décembre 2007 à 17:19:28

      t'es sûr qu'il faut mettre

      1. connect(ftp, SIGNAL(stateChanged(int state)),this, SLOT(stateChangedSlot(int state)));

      et pas plutôt
      1. connect(ftp, SIGNAL(stateChanged(int)),this, SLOT(stateChangedSlot(int)));


      Sinon je sais pas...
      • Partager sur Facebook
      • Partager sur Twitter
        6 décembre 2007 à 17:23:10

        Magnifique, c'était ça!

        Merci
        • Partager sur Facebook
        • Partager sur Twitter

        Qt : QFtp

        × 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