Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] bibliothèque introuvable...

Sujet résolu
    18 juillet 2007 à 1:43:18

    Bonsoir
    après avoir installé Qt avec la méthode du tutorail : http://www.siteduzero.com/tuto-3-14605-1-qt-installation-sous-windows-avec-codeblocks.html

    j'ai voulu tester ce code:

    mywidget.h

    #ifndef MYWIDGET_H
    #define MYWIDGET_H

    #include <qvbox.h>

    class MyWidget : public QVBox
    {
            Q_OBJECT
           
    public:
            MyWidget( QWidget *parent = 0, char *name = 0 );
    };

    #endif
     


    mywidget.cpp


    #include <qlcdnumber.h>
    #include <qslider.h>

    #include "mywidget.h"

    MyWidget::MyWidget( QWidget *parent, char *name ) : QVBox( parent, name )
    {
            QLCDNumber *lcd = new QLCDNumber( this );
            QSlider *s = new QSlider( QSlider::Horizontal, this );
                   
            connect( s, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)) );
    }
     


    main.cpp


    #include <qapplication.h>

    #include "mywidget.h"

    int main( int argc, char **argv )
    {
            QApplication a( argc, argv );
           
            MyWidget *w = new MyWidget();
            a.setMainWidget( w );
            w->show();
           
            return a.exec();
    }
     


    J'obtien l'erreur suivante:

    Citation

    Project : QT Application
    Compiler : GNU GCC Compiler (called directly)
    Directory : D:\Documents and Settings\Propriétaire\Bureau\ex01\
    --------------------------------------------------------------------------------
    Running pre-build step: QT Application
    qt-prebuild : running
    qt-prebuild : scan started
    qt-prebuild : found MOCable file mywidget.h
    qt-prebuild : you have to add moc_mywidget.cpp to your project
    qt-prebuild : scan completed
    Switching to target: default
    Compiling: mywidget.cpp
    In file included from mywidget.cpp:4:
    mywidget.h:4:19: qvbox.h: No such file or directory
    In file included from mywidget.cpp:4:
    mywidget.h:7: error: expected class-name before '{' token
    mywidget.cpp: In constructor `MyWidget::MyWidget(QWidget*, char*)':
    mywidget.cpp:6: error: class `MyWidget' does not have any field named `QVBox'
    mywidget.cpp:8: error: invalid conversion from `MyWidget* const' to `uint'
    mywidget.cpp:8: error: initializing argument 1 of `QLCDNumber::QLCDNumber(uint, QWidget*)'
    mywidget.cpp:9: error: `Horizontal' is not a member of `QSlider'
    mywidget.cpp:11: error: `connect' undeclared (first use this function)
    mywidget.cpp:11: error: (Each undeclared identifier is reported only once for each function it appears in.)
    Process terminated with status 1 (0 minutes, 1 seconds)



    Maintenant je ne comprend pas pour quoi ça ne fonctionne pas.
    Je ne comprend pas pourquoi il ne va pas chercher les fichiers nessécaire dans le chemin d'accès indiqué au moment de l'installation que j'ai pu faire grâce au tutorial.

    Merci de votre aide :)
    • Partager sur Facebook
    • Partager sur Twitter
    :)
      18 juillet 2007 à 12:33:08

      Le compilateur ne trouve pas le fichier "QVBox.h"...Vérifie que tu as bien spécifié un chemin d'acces correct à ce fichier (à coup sur, non) ;)
      • Partager sur Facebook
      • Partager sur Twitter
        18 juillet 2007 à 12:39:46

        Bonjour.
        J'ai cherché l'objet QVBox dans l'aide de Qt mais je ne l'ai pas trouvé.
        Par contre l'objet QVBoxLayout oui, dans le header QVBoxLayout.
        Es-tu sûr de ton objet ?
        • Partager sur Facebook
        • Partager sur Twitter
          18 juillet 2007 à 13:25:11

          Citation : moii

          mywidget.h:4:19: qvbox.h: No such file or directory


          QVBox c'est Qt3, en Qt4 c'est QVBoxLayout

          Citation : moii

          mywidget.cpp:6: error: class `MyWidget' does not have any field named `QVBox'


          faut changer "QVBox" dans le constructeur

          Citation : moii

          mywidget.cpp:8: error: invalid conversion from `MyWidget* const' to `uint'
          mywidget.cpp:8: error: initializing argument 1 of `QLCDNumber::QLCDNumber(uint, QWidget*)'


          tu donnes une variable d'un type invalide alors qu'il faut un QWidget*

          Citation : moii

          mywidget.cpp:9: error: `Horizontal' is not a member of `QSlider'


          ce n'est pas "QSlider::Horizontal" mais "Qt::Horizontal"

          Citation : moii

          mywidget.cpp:11: error: `connect' undeclared (first use this function)


          la même chose que pour le type de "this", n'héritant pas de QObject tu as cette erreur.

          ps : au lieu de faire hériter ta classe d'un layout, fait la héritée de QWidget
          • Partager sur Facebook
          • Partager sur Twitter
            18 juillet 2007 à 23:46:43

            Existe - t -il un cours plus à jours (en français lol) sur Qt que celui la:
            http://www.digitalfanatics.org/projects/qt_tutorial/fr/chapter01.html
            ??
            Merci! :)
            • Partager sur Facebook
            • Partager sur Twitter
            :)
              18 juillet 2007 à 23:59:12

              pas à ma connaissance, et puis poourquoi toujours "en francais" ?
              • Partager sur Facebook
              • Partager sur Twitter
                19 juillet 2007 à 0:05:18

                Et pourquoi pas? tellement de monde sais s'en servir pourquoi pas mettre un tuto en français?
                Sinon pour te répondre parce que je ne suis pas térrible en anglais et que je ne compte pas prendre de cours particulier (trop chère.)

                Voilà, merci :) .
                • Partager sur Facebook
                • Partager sur Twitter
                :)
                  19 juillet 2007 à 0:16:21

                  Citation : moii

                  Et pourquoi pas? tellement de monde sais s'en servir pourquoi pas mettre un tuto en français?


                  l'anglais est la langue universelle et cà prends du temps d'écrire un tuto (clair net précis et sans erreurs) d'autant plus si faut le maintenir dans plusieurs langues.
                  Et puis mateo21 va faire quelques chapitres sur Qt (cà sera probablement Qt5 quand il sortira)

                  regarde le livre sorti sur Qt4, il est sur Qt4.1.1 et quand il est sorti en francais on en était à Qt4.2.3 (environ) donc déjà obsolète sur certaines parties
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    19 juillet 2007 à 9:41:01

                    Citation : moii

                    Et pourquoi pas? tellement de monde sais s'en servir pourquoi pas mettre un tuto en français?
                    Sinon pour te répondre parce que je ne suis pas térrible en anglais et que je ne compte pas prendre de cours particulier (trop chère.)

                    Voilà, merci :) .



                    Perso je ne suis pas fort du tout en anglais, mais je comprends quand même l'important dans les tutos en anglais. (j'ai lu en partie le tuto sur python, l'officielle, j'ai quasi tout compris alors que ma moyenne devrai me dire que je ne devrais pas comprendre grand chose (3/6, le 4 étant la moyenne et le 0 n'existant pas)).

                    Il suffit d'essayé, et si tu pige vraiment rien (côté voc) tu peux toujours trouver un bon traducteur. Si tu ne comprends rien mais au niveau de la grammaire, achète toi un livre pour étudier autonome (le livre de Tom Spencer est bien je pense, il s'intitule "the golden gramair book").
                    On a rien sans rien alors autant essayer ;)

                    Bonne chance
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [Qt] bibliothèque introuvable...

                    × 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