Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qt Designer (Qt4)

probleme de compilation

    16 décembre 2007 à 16:28:14

    Bonjour
    j'ai deja posté ce message mais je n'ai reçcu aucune replique.je le reformule pour me donner plus de chances
    c'est bien ça ah?? :p
    je suis debutant en Qt4 ,et j'utilise le Qt desinger pour faire une boite de dialogue avec boutons...j'ai enregistré ma boite sous gotocelldialog.ui dans un repertoire gotocell et j'ai crée un fichier main.cpp dans le meme repertoire grace à notepad++.voici le main
    1. #include <QApplication>
    2. #include <QDialog>
    3. #include "ui_gotocelldialog.h"
    4. int main(int argc, char *argv[])
    5. {
    6. QApplication app(argc, argv);
    7. Ui::GoToCellDialog ui;
    8. QDialog *dialog = new QDialog;
    9. ui.setupUi(dialog);
    10. dialog->show();
    11. return app.exec();
    12. }

    j'ai compilé qmake -project,qmake,puis make alors je reçois comme recompense les messages d'erreurs suivants:

    C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lqtmain
    collect2: ld returned 1 exit status
    mingw32-make[1]: *** [release\gotocell.exe] Error 1
    mingw32-make[1]: Leaving directory `C:/Documents and Settings/celano/Bureau/goto
    cell'
    mingw32-make: *** [release] Error 2

    SVP,mes Amis aidez-moi à comprendre et à resoudre ce probleme et merci infiniment :-°
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 décembre 2007 à 21:38:52

      Bonjour,

      Je vais te montrer mon code pour utiliser Qt Designer avec les classes (cf: le tuto de M@téo :-° ):

      1. #include <QApplication>
      2. #include <QtGui>
      3. #include "gotocelldialog.h"
      4. class Exemple : public QMainWindow, private Ui::MainWindow //Mets MainWindow si tu as choisis MainWindow dans QtDesigner (sinon mais le non de ta fenetre)
      5. {
      6.     Q_OBJECT
      7.     public:
      8.        Exemple();
      9. };
      10. Exemple::Exemple() : setupUi(this)
      11. {
      12. }
      13. int main(int argc, char **argv)
      14. {
      15.     QApplication app(argc, argv);
      16.     Exemple fenetre;
      17.     fenetre.show();
      18.     return app.exec();
      19. }
      20. #include "main.moc" //Ne pas Oublier cela !!!


      Dis le si ce code ne marche pas :o ou si tu ne comprends pas quelque chose ! ;)
      A+

      • Partager sur Facebook
      • Partager sur Twitter
        19 décembre 2007 à 23:00:35

        merci tintincocos ,mais navré meme votre code ne marche pas je voudrais des explications .le mieux dc'es d'attendre les cours de Mateo.merci
        • Partager sur Facebook
        • Partager sur Twitter
          19 décembre 2007 à 23:03:21

          Citation : Celano

          mais navré meme votre code ne marche pas


          si tu nous donnais les erreurs renvoyées
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            20 décembre 2007 à 17:08:02

            Bonjour, cela est assez bizarre o_O
            Peut tu nous renvoyer le(s) erreur(s) qui sont renvoyées par la commande make ? (comme le dit minirop) pour que l'on puisse voir ce qui ne va pas
            • Partager sur Facebook
            • Partager sur Twitter
              20 décembre 2007 à 23:56:05

              bonsoir
              voici la liste les erreurs envoyés:

              .cpp
              main.cpp:4:28: gotocelldialog.h: No such file or directory
              main.cpp:6: error: `Ui' has not been declared
              main.cpp:6: error: expected class-name before '.' token
              main.cpp:6: error: expected `{' before '.' token
              main.cpp:6: error: expected unqualified-id before '.' token
              main.cpp:6: error: expected `,' or `;' before '.' token
              main.cpp:14: error: invalid use of undefined type `class Exemple'
              main.cpp:6: error: forward declaration of `class Exemple'
              main.cpp: In constructor `Exemple::Exemple()':
              main.cpp:14: error: class `Exemple' does not have any field named `setupUi'
              main.cpp:15: confused by earlier errors, bailing out
              mingw32-make[1]: *** [release\main.o] Error 1
              mingw32-make[1]: Leaving directory `C:/Documents and Settings/celano/Bureau/goto
              cell'
              mingw32-make: *** [release] Error 2
              • Partager sur Facebook
              • Partager sur Twitter
                21 décembre 2007 à 0:05:43

                suffit de remplacer :
                1. #include "gotocelldialog.h"

                par le vrai nom du fichier qui semble être celui que tu as mis dans ton premier post :
                1. #include "ui_gotocelldialog.h"

                • Partager sur Facebook
                • Partager sur Twitter
                  21 décembre 2007 à 12:39:28

                  Désolé mes Amis ,mais il me semble que je suis vraiment coincé.j'ai changer l'include en ajoutant Ui_,toutefois je reçois plus d'erreurs :

                  .cpp
                  main.cpp:6: error: expected class-name before '{' token
                  main.cpp: In constructor `Exemple::Exemple()':
                  main.cpp:13: error: class `Exemple' does not have any field named `setupUi'
                  mingw32-make[1]: *** [release\main.o] Error 1
                  mingw32-make[1]: Leaving directory `C:/Documents and Settings/celano/Bureau/goto
                  cell'
                  mingw32-make: *** [release] Error 2

                  Mais je voudrais savoir une chose:pourquoi mon code ne marche pas ,alors que ce meme code est donné dans un cours officiel(Vous pouvez voir le livre officiel de Qt de jasmine blachette il existe un chapitre en telechargement PDF gratuit sur Qt fr,j'ai suivi scrupuleusement les instructions tout marche à merveille jusqu'à ce que j'arrive au compilation!!!!
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    21 décembre 2007 à 17:28:15

                    Bonjour,

                    Excuse-moi j'avais oublié de mettre le ui_...
                    Si le code que tu as vu ne fonctionne pas c'est peut-etre car tu n'as pas la meme version qu'eux !!!
                    Je n'ai pas réellement compris si ton code fonctionne ç present !

                    Au revoir
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      4 janvier 2008 à 12:12:17

                      J'ai trouvé ton probleme (en fouillant un peu sur le forum, je suis retombé sur ce sujet)

                      Il faut mettre setupUi entre les accolades, et pas après les deux points (car sinon le compilateur associe this a setupUi)

                      Voici donc le code (normalement, je ne peux pas tester pour le moment) fonctionnel:
                      1. #include <QApplication>
                      2. #include <QtGui>
                      3. #include "ui_gotocelldialog.h"
                      4. class Exemple : public QMainWindow, private Ui::MainWindow //Mets MainWindow si tu as choisis MainWindow dans QtDesigner (sinon mais le nom de ta fenetre)
                      5. {
                      6.     Q_OBJECT
                      7.     public:
                      8.        Exemple();
                      9. };
                      10. Exemple::Exemple()
                      11. {
                      12.     setupUi(this)
                      13. }
                      14. int main(int argc, char **argv)
                      15. {
                      16.     QApplication app(argc, argv);
                      17.     Exemple fenetre;
                      18.     fenetre.show();
                      19.     return app.exec();
                      20. }
                      21. #include "main.moc" //Ne pas Oublier cela !!!
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Qt Designer (Qt4)

                      × 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