IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème de classe


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Par défaut Problème de classe
    Je voudrais éclater cette classe en un .h et un .cpp mais j'y arrive pas.
    Là elle est dans un .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
     
    class WaitDialog : public QDialog {
    public:
      WaitDialog(uint interval, QWidget *p=0) : QDialog(p)
      {
        QVBoxLayout *l = new QVBoxLayout(this);
        QLabel *lab = new QLabel("Please wait");
        l->addWidget(lab);
        setLayout(l);
        timer.setSingleShot(true);
        timer.setInterval(interval);
        connect(&timer, SIGNAL(timeout()), this, SLOT(accept()));
      }
     
    int exec()
    {
      timer.start();
      return QDialog::exec();
    }
     
    private:
      QTimer timer;
    };

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et quel est ton problème exactement ? Tu as essayé quoi ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Par défaut Problème de classe
    J'ai fait ça mais j'arrive pas, y a ce ": QDialog(p)" qui m'embête. Je sais pas .

    J'ai mis ça dans le .h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class WaitDialog : public QDialog {
    public:
      WaitDialog(uint interval, QWidget *p=0) : QDialog(p); //23
      int exec();
     
    private:
      QTimer timer;
    };
    et ça dans le .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
     
      WaitDialog::WaitDialog(uint interval, QWidget *p=0) : QDialog(p)
      {
        QVBoxLayout *l = new QVBoxLayout(this);
        QLabel *lab = new QLabel("Please wait");
        l->addWidget(lab);
        setLayout(l);
        timer.setSingleShot(true);
        timer.setInterval(interval);
        connect(&timer, SIGNAL(timeout()), this, SLOT(accept()));
      }
     
    int WaitDialog::exec()
    {
      timer.start();
      return QDialog::exec();
    }
    Mais j'ai une erreur ligne 23 dans le .h...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    C:\root\dev\Qt\sms data\sms\sendMsg.h In constructor `WaitDialog::WaitDialog(uint, QWidget*)'
    23 C:\root\dev\Qt\sms data\sms\sendMsg.h expected `{' at end of input

  4. #4
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    C'est la liste d'initialisation du constructeur, il faut la mettre dans la définition elle aussi, et pas dans la déclaration de la classe :

    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
     
    // .h
    class WaitDialog : public QDialog {
    public:
      WaitDialog(uint interval, QWidget *p=0);
      int exec();
     
    private:
      QTimer timer;
    };
     
    // .cpp
    WaitDialog::WaitDialog(uint interval, QWidget *p) : QDialog(p)
    {
        QVBoxLayout *l = new QVBoxLayout(this);
        QLabel *lab = new QLabel("Please wait");
        l->addWidget(lab);
        setLayout(l);
        timer.setSingleShot(true);
        timer.setInterval(interval);
        connect(&timer, SIGNAL(timeout()), this, SLOT(accept()));
    }
     
    int WaitDialog::exec()
    {
      timer.start();
      return QDialog::exec();
    }

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Par défaut Problème de classe
    J'ai fais comme t'as dis et le compilateur répond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WaitDialog::WaitDialog(uint interval, QWidget *p=0) : QDialog(p) // 23
    23 C:\root\dev\Qt\sms data\sms\sendMsg.cpp default argument given for parameter 2 of `WaitDialog::WaitDialog(uint, QWidget*)'

    23 C:\root\dev\Qt\sms data\sms\sendMsg.h after previous specification in `WaitDialog::WaitDialog(uint, QWidget*)'

  6. #6
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    Mince, j'avais pas vu il y a encore la valeur par défaut du paramètre p du constructeur, à ne mettre que dans la définition et pas la déclaration. Et aussi il manquait un ; à la fin.

    Corrigé dans le post plus haut.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de classe.
    Par maminova77 dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2006, 21h39
  2. Problème sur classe Transformer avec les <!--
    Par tykool dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2006, 10h20
  3. Problème de classe
    Par DeusXL dans le forum DirectX
    Réponses: 15
    Dernier message: 04/12/2005, 14h37
  4. Problème de classe
    Par tidou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/10/2005, 17h49
  5. [FLASH MX2004] Problème de classe
    Par JulPoWeR dans le forum Flash
    Réponses: 1
    Dernier message: 10/07/2005, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo