Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt 4.3.0] j'ai du mal à comprendre....

les slots

Sujet résolu
    6 août 2007 à 19:33:00

    va voir mon tuto si tu compiles pas à la main (lien de ma sign)
    • Partager sur Facebook
    • Partager sur Twitter
      6 août 2007 à 20:18:47

      Oui mais certain truc n'est pas trés explicite:

      Citation : Pas de titre

      Il vous suffira d'ajouter le fichier moc_****.cpp géneré à votre projet (il se trouve dans le même dossier que le fichier ****.h correspondant) et lors des prochaines compilations, tout se passera "normalement".


      J'ai ni la commande qt-moc-ui, ni de fichier .h (pas de header). J'ai juste le fichier main.cpp citer + haut.
      Bizard pour la commande, j'ai bien Qt et la commande moc:
      bureau p1-slot # equery b qt-moc-ui
      [ Searching for file(s) qt-moc-ui in *... ]
      bureau p1-slot # equery b moc
      [ Searching for file(s) moc in *... ]
      x11-libs/qt-3.3.8-r2 (/usr/qt/3/bin/moc)
      x11-libs/qt-4.3.0 (/usr/bin/moc)

      Comment faire?
      • Partager sur Facebook
      • Partager sur Twitter
      Développeur d'Ultracopier/Supercopier et du MMORPG libre CatchChallenger
        6 août 2007 à 20:26:48

        pour "qt-moc-ui" c'est un fichier (pour windows) téléchargeable dans le tuto.
        dans ton cas faut créer toi même le fichier en faisant "moc main.cpp" (pas sûr s'il faut des options ou pas)
        • Partager sur Facebook
        • Partager sur Twitter
          6 août 2007 à 21:10:31

          J'ai fouillet dans les options:
          moc main.cpp -o out.cpp


          /****************************************************************************
          ** Meta object code from reading C++ file 'main.cpp'
          **
          ** Created: Mon Aug 6 21:09:51 2007
          **      by: The Qt Meta Object Compiler version 59 (Qt 4.3.0)
          **
          ** WARNING! All changes made in this file will be lost!
          *****************************************************************************/


          #if !defined(Q_MOC_OUTPUT_REVISION)
          #error "The header file 'main.cpp' doesn't include <QObject>."
          #elif Q_MOC_OUTPUT_REVISION != 59
          #error "This file was generated using the moc from 4.3.0. It"
          #error "cannot be used with the include files from this version of Qt."
          #error "(The moc has changed too much.)"
          #endif

          static const uint qt_meta_data_MyWidget[] = {

           // content:
                 1,       // revision
                 0,       // classname
                 0,    0, // classinfo
                 1,   10, // methods
                 0,    0, // properties
                 0,    0, // enums/sets

           // slots: signature, parameters, type, tag, flags
                10,    9,    9,    9, 0x0a,

                 0        // eod
          };

          static const char qt_meta_stringdata_MyWidget[] = {
              "MyWidget\0\0augmenterSlider()\0"
          };

          const QMetaObject MyWidget::staticMetaObject = {
              { &QWidget::staticMetaObject, qt_meta_stringdata_MyWidget,
                qt_meta_data_MyWidget, 0 }
          };

          const QMetaObject *MyWidget::metaObject() const
          {
              return &staticMetaObject;
          }

          void *MyWidget::qt_metacast(const char *_clname)
          {
              if (!_clname) return 0;
              if (!strcmp(_clname, qt_meta_stringdata_MyWidget))
                  return static_cast<void*>(const_cast< MyWidget*>(this));
              return QWidget::qt_metacast(_clname);
          }

          int MyWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
          {
              _id = QWidget::qt_metacall(_c, _id, _a);
              if (_id < 0)
                  return _id;
              if (_c == QMetaObject::InvokeMetaMethod) {
                  switch (_id) {
                  case 0: augmenterSlider(); break;
                  }
                  _id -= 1;
              }
              return _id;
          }
           


          Il m'a fait ce code qui marche encore -.
          • Partager sur Facebook
          • Partager sur Twitter
          Développeur d'Ultracopier/Supercopier et du MMORPG libre CatchChallenger
            6 août 2007 à 21:25:32

            Citation : alpha_one_x86

            Il m'a fait ce code qui marche encore -.


            o_O

            après tu fais :
            g++ -o prog main.cpp out.cpp

            et çà devrait être bon ;)
            • Partager sur Facebook
            • Partager sur Twitter
              6 août 2007 à 23:04:52

              non toujours + de bug. s'il te plait peu tu tester sur ton pc pour voir si les commande que tu dit marche, car chez moi ça marche pas. Il faudrai bien que ça marche, j'ai que la ligne de commande.
              • Partager sur Facebook
              • Partager sur Twitter
              Développeur d'Ultracopier/Supercopier et du MMORPG libre CatchChallenger
                6 août 2007 à 23:19:07

                tu fais un fichier .pro qui contient simplement :
                SOURCES = main.cpp

                ensuite tu fais :
                qmake && make

                et voilà !
                • Partager sur Facebook
                • Partager sur Twitter
                  7 août 2007 à 0:50:43

                  Non toujours pas:
                  user@bureau ~/qt/p1-slot $ ls
                  main.cpp  p1-slot.pro
                  user@bureau ~/qt/p1-slot $ cat p1-slot.pro
                  SOURCES = main.cpp
                  user@bureau ~/qt/p1-slot $ qmake
                  user@bureau ~/qt/p1-slot $ make
                  g++ -c -pipe -march=k8 -msse3 -O2 -pipe -march=k8 -O2 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp
                  g++  -o p1-slot main.o    -L/usr/lib64/qt4 -lQtGui -L/usr/lib64 -L/usr/lib64/qt4 -L/usr/lib -lpng -lSM -lICE -lXrender -lXrandr -lXfixes -lXcursor -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -lrt -ldl -lpthread
                  main.o: In function `MyWidget::MyWidget(QWidget*)':
                  main.cpp:(.text+0x4f): undefined reference to `vtable for MyWidget'
                  main.cpp:(.text+0x58): undefined reference to `vtable for MyWidget'
                  main.cpp:(.text+0x64): undefined reference to `MyWidget::staticMetaObject'
                  main.cpp:(.text+0x10a): undefined reference to `MyWidget::staticMetaObject'
                  main.o: In function `main':
                  main.cpp:(.text+0x45f): undefined reference to `vtable for MyWidget'
                  main.cpp:(.text+0x468): undefined reference to `vtable for MyWidget'
                  main.cpp:(.text+0x4b0): undefined reference to `vtable for MyWidget'
                  main.cpp:(.text+0x4b9): undefined reference to `vtable for MyWidget'
                  main.o: In function `MyWidget::MyWidget(QWidget*)':
                  main.cpp:(.text+0x4ff): undefined reference to `vtable for MyWidget'
                  main.o:main.cpp:(.text+0x508): more undefined references to `vtable for MyWidget' follow
                  main.o: In function `MyWidget::MyWidget(QWidget*)':
                  main.cpp:(.text+0x514): undefined reference to `MyWidget::staticMetaObject'
                  main.cpp:(.text+0x5ba): undefined reference to `MyWidget::staticMetaObject'
                  collect2: ld returned 1 exit status
                  make: *** [p1-slot] Error 1
                  user@bureau ~/qt/p1-slot $

                  Je vais jamais m'en sortir :( .
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Développeur d'Ultracopier/Supercopier et du MMORPG libre CatchChallenger

                  [Qt 4.3.0] j'ai du mal à comprendre....

                  × 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