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 :

Connexion de slot qui bug


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut Connexion de slot qui bug
    Bonjour, je me remet tout doucement à la prog en c++, mais voila j'ai un bug que je ne comprend pas, si on pouvais corriger mon code sous en me donnant une explication ce serai gentil:
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    #include <QApplication>
    #include <QFont>
    #include <QGridLayout>
    #include <QLCDNumber>
    #include <QPushButton>
    #include <QSlider>
    #include <QVBoxLayout>
    #include <QWidget>
     
    class LCDRange : public QWidget
    {
    public:
            LCDRange(QWidget *parent = 0);
    };
     
    LCDRange::LCDRange(QWidget *parent)
            : QWidget(parent)
    {
            QLCDNumber *lcd = new QLCDNumber(2);
            lcd->setSegmentStyle(QLCDNumber::Filled);
     
            QSlider *slider = new QSlider(Qt::Horizontal);
            slider->setRange(0, 99);
            slider->setValue(0);
            connect(slider, SIGNAL(valueChanged(int)),
                    lcd, SLOT(display(int)));
     
            QVBoxLayout *layout = new QVBoxLayout;
            layout->addWidget(lcd);
            layout->addWidget(slider);
            setLayout(layout);
    }
     
    class MyWidget : public QWidget
    {
    public:
            MyWidget(QWidget *parent = 0);
    public slots:
            void setValue();
    private:
            QPushButton *button;
    };
     
    void MyWidget::setValue()
    {
            button->setFont(QFont("Times", 18, QFont::Bold));
    }
     
    MyWidget::MyWidget(QWidget *parent)
            : QWidget(parent)
    {
            QPushButton *quit = new QPushButton(tr("Quit"));
            quit->setFont(QFont("Times", 18, QFont::Bold));
            connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
     
            QGridLayout *grid = new QGridLayout;
            for (int row = 0; row < 3; ++row) {
                    for (int column = 0; column < 3; ++column) {
                            LCDRange *lcdRange = new LCDRange;
                            grid->addWidget(lcdRange, row, column);
                    }
            }
     
            QVBoxLayout *layout2 = new QVBoxLayout;
            button = new QPushButton(tr("Button"));
            connect(button, SIGNAL(clicked()), this, SLOT(setValue()));
            layout2->addWidget(button);
            //layout2->addLayout(grid);
            //setLayout(layout2);
     
            QVBoxLayout *layout = new QVBoxLayout;
            layout->addWidget(quit);
            layout->addLayout(grid);
            layout->addLayout(layout2);
            setLayout(layout);
    }
     
    int main(int argc, char *argv[])
    {
            QApplication app(argc, argv);
            MyWidget widget;
            widget.show();
            return app.exec();
    }
    En console ça me dit:
    Object::connect: No such slot QWidget::setValue()

    Et moi je cherche seulement à connecter mon bouton (button) à ma méthode setValue() de la classe MyWidget.

    Merci de m'expliquer ou j'ai merder, car j'ai avec moi mon bouquain "C++ GUI programming with QT4" et depuis 2 semaine je me tape la tete contre les murs

  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 : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810

  3. #3
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Quand je met:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class MyWidget : public QWidget
    {
    Q_OBJECT
    public:
            MyWidget(QWidget *parent = 0);
    public slots:
            void setValue();
    private:
            QPushButton *button;
    };
    ca me fait:
    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
    main.o: In function `MyWidget::MyWidget(QWidget*)':
    main.cpp:(.text+0x3ae): undefined reference to `vtable for MyWidget'
    main.cpp:(.text+0x3b6): undefined reference to `vtable for MyWidget'
    main.cpp:(.text+0x3c2): undefined reference to `MyWidget::staticMetaObject'
    main.cpp:(.text+0x4f8): undefined reference to `MyWidget::staticMetaObject'
    main.o: In function `main':
    main.cpp:(.text+0x6ff): undefined reference to `vtable for MyWidget'
    main.cpp:(.text+0x708): undefined reference to `vtable for MyWidget'
    main.cpp:(.text+0x750): undefined reference to `vtable for MyWidget'
    main.cpp:(.text+0x759): undefined reference to `vtable for MyWidget'
    main.o: In function `MyWidget::MyWidget(QWidget*)':
    main.cpp:(.text+0x79e): undefined reference to `vtable for MyWidget'
    main.o:main.cpp:(.text+0x7a6): more undefined references to `vtable for MyWidget' follow
    main.o: In function `MyWidget::MyWidget(QWidget*)':
    main.cpp:(.text+0x7b2): undefined reference to `MyWidget::staticMetaObject'
    main.cpp:(.text+0x8e8): undefined reference to `MyWidget::staticMetaObject'
    collect2: ld returned 1 exit status
    make: *** [temp] Error 1

  4. #4
    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 : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tu as lu tout le tuto ?

Discussions similaires

  1. innerHTML qui bug sous IE
    Par krolineeee dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/06/2006, 16h28
  2. [Ouverture fichier] Chemin qui bug !
    Par nebule dans le forum Langage
    Réponses: 15
    Dernier message: 18/05/2006, 09h59
  3. [2.0] Get sur une variable d'application qui bug ??
    Par brousaille dans le forum ASP.NET
    Réponses: 8
    Dernier message: 14/03/2006, 05h08
  4. [RCP]tuto Ibm qui bug
    Par sglug dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 03/10/2005, 15h11

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