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

Qt Discussion :

utiliser une classe pour gerer les signaux


Sujet :

Qt

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut utiliser une classe pour gerer les signaux
    Bonjour,
    Intro: j'ai besoin de synchroniser les differents elements (deux Slider, SpinBox et QLCDNumber) en les mettant a la meme valeur en passant par une classe qui va recevoir et generer les signaux (SigMan)..

    Pb: le compilateur renvoie le message suivant:
    release\q3.o(.text+0x5d):q3.cpp: underfined reference to 'vtable for SigMan'
    release\q3.o(.text+0x12d):q3.cpp: underfined reference to 'vtable for SigMan'
    release\q3.o(.text+0x1b3):q3.cpp: underfined reference to 'SigMan::valueChanged(int)'

    Sources:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    class MyWidget : public QWidget
     {
     public:
         MyWidget(QWidget *parent = 0);
     };
     
    class SigMan: public QObject
    {
    	Q_OBJECT
     
    		private:
    			int value;
    		public:
    			SigMan(int val=0);
    		signals:
    			void valueChanged(int);
    		public slots:
    			void setValue(int);
    };
     
    SigMan::SigMan(int n):
    	QObject()
    {
    	value=n;
    }
    void SigMan::setValue(int n)
    {
    	value=n;
    	emit valueChanged(value);
    }			
     
     MyWidget::MyWidget(QWidget *parent)
         : QWidget(parent)
     {
     
     
         QSlider *lcd = new QSlider(Qt::Horizontal);
         lcd->setRange(0, 99);
         lcd->setValue(20);
     
         QSlider *slider = new QSlider(Qt::Horizontal);
         slider->setRange(0, 99);
         slider->setValue(0);
     
         QSpinBox *qsb= new QSpinBox();
         qsb->setRange(0,99);
     
    	QLCDNumber *nb=new QLCDNumber;
     
    	SigMan *s=new SigMan;
     
        connect(slider,SIGNAL(valueChanged(int)),s,SLOT(setValue(int)));
        connect(lcd,SIGNAL(valueChanged(int)),s,SLOT(setValue(int)));
    	connect(qsb,SIGNAL(valueChanged(int)),s,SLOT(setValue(int)));
    	connect(s,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));
    	connect(s,SIGNAL(valueChanged(int)),lcd,SLOT(setValue(int)));
    	connect(s,SIGNAL(valueChanged(int)),qsb,SLOT(setValue(int)));
    	connect(s,SIGNAL(valueChanged(int)),nb,SLOT(display(int)));
     
         QVBoxLayout *layout = new QVBoxLayout;
         layout->addWidget(lcd);
         layout->addWidget(slider);
         layout->addWidget(qsb);
         layout->addWidget(nb);
         setLayout(layout);
     }
     
     int main(int argc, char *argv[])
     {
         QApplication app(argc, argv);
         MyWidget widget;
         widget.show();
         return app.exec();
     }
    Merci..

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Simple, tu as oublié de mocer ton en-tête.

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    ok merci bcp.
    j'ai du mal a tout séparer apres le java..

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 18/09/2010, 23h59
  2. Réponses: 1
    Dernier message: 14/09/2009, 00h51
  3. Coder une classe pour gérer les matrices
    Par TrexXx dans le forum Débuter
    Réponses: 2
    Dernier message: 11/02/2009, 14h22
  4. Réponses: 2
    Dernier message: 04/05/2007, 15h10
  5. Utiliser une variable pour stocker les noms d'objets.
    Par en_gel_ho dans le forum Access
    Réponses: 4
    Dernier message: 03/01/2007, 17h44

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