Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1661 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  programmation QT : problème de débutant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programmation QT : problème de débutant

n°659881
psychotek
Posté le 01-03-2004 à 11:15:48  profilanswer
 

bonjour à tous
 
j'essaie d'apprendre à programmer avec le widget QT, sous linux. j'ai des bases de programmations objet (en java) et je connais le C, donc j'apprend en même temps la programmation objet en C++.
 
voici le premier exemple que je tente de faire tourner, et je ne comprend pas pourquoi ça compile pas :
 

Code :
  1. #include <qapplication.h>
  2. int main (int argc, char** argv)
  3. {
  4.   QApplication app (argc, argv);
  5.   QWidget *window = new QWidget();
  6.   app.setMainWidget(window);
  7.   window -> show();
  8.   return app.exec();
  9. }


 
je tente de compiler avec gcc, et j'obtiens le message suivant :

exemple01.cpp:1:26: qapplication.h: No such file or directory
exemple01.cpp: In function `int main(int, char**)':
exemple01.cpp:5: error: `QApplication' undeclared (first use this function)
exemple01.cpp:5: error: (Each undeclared identifier is reported only once for each function it appears in.)
exemple01.cpp:5: error: syntax error before `(' token
exemple01.cpp:7: error: `QWidget' undeclared (first use this function)
exemple01.cpp:7: error: `window' undeclared (first use this function)
exemple01.cpp:7: error: syntax error before `(' token
exemple01.cpp:9: error: `app' undeclared (first use this function)

pourtant j'ai installé les paquages nécessaires (enfin je croyais, mais manifestement non). je suis sous mandrake 9.2, quelqu'un pourrait m'aider svp ?
 
merci beaucoup

mood
Publicité
Posté le 01-03-2004 à 11:15:48  profilanswer
 

n°659884
lorill
Posté le 01-03-2004 à 11:22:08  profilanswer
 

faudrait ptet dire au compilateur ou trouver ses petits ?
 
genre une directive -I/mon/chemin/vers/les/includes/qt

n°659890
psychotek
Posté le 01-03-2004 à 11:26:43  profilanswer
 

ça me semble être une bonne idée. quelqu'un sait où ça s'installe par défaut ?


Message édité par psychotek le 01-03-2004 à 11:26:58
n°659891
lorill
Posté le 01-03-2004 à 11:28:09  profilanswer
 

non.
 
essaye find ou locate [:spamafote]

n°659898
Taz
bisounours-codeur
Posté le 01-03-2004 à 11:32:12  profilanswer
 

tu veux commencer par
 
1) installer tout ce qu'il faut
2) utiliser la façon Qt de compiler, càd, prépro et compilateur
3) et lire les milliars de tutoriels sur le ouaib :o

n°659905
psychotek
Posté le 01-03-2004 à 11:37:00  profilanswer
 

bon je l'ai trouvé là :
/usr/lib/qt3  
 
mais -l ne semble pas être la bonne option, que pensez vous de -B ?
 
je fais donc gcc -B /usr/lib/qt3 exemple.cpp  et j'ai un gros message d'erreur :
 
/home/psy/tmp/cc4bmlg6.o(.text+0x20): In function `main':
: undefined reference to `QApplication::QApplication[in-charge](int&, char**)'
/home/psy/tmp/cc4bmlg6.o(.text+0x2d): In function `main':
: undefined reference to `operator new(unsigned)'
/home/psy/tmp/cc4bmlg6.o(.text+0x45): In function `main':
: undefined reference to `QWidget::QWidget[in-charge](QWidget*, char const*, unsigned)'
/home/psy/tmp/cc4bmlg6.o(.text+0x6a): In function `main':
: undefined reference to `operator delete(void*)'
/home/psy/tmp/cc4bmlg6.o(.text+0x84): In function `main':
: undefined reference to `QApplication::setMainWidget(QWidget*)'
/home/psy/tmp/cc4bmlg6.o(.text+0xaa): In function `main':
: undefined reference to `QApplication::exec()'
/home/psy/tmp/cc4bmlg6.o(.text+0xbb): In function `main':
: undefined reference to `QApplication::~QApplication [in-charge]()'
/home/psy/tmp/cc4bmlg6.o(.text+0xd5): In function `main':
: undefined reference to `QApplication::~QApplication [in-charge]()'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTV6QGList+0xc): undefined reference to `QGList::clear()'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTV6QGList+0x10): undefined reference to `QGList::~QGList [in-charge]()'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTV6QGList+0x14): undefined reference to `QGList::~QGList [in-charge deleting]()'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTV6QGList+0x18): undefined reference to `QPtrCollection::newItem(void*)'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTV6QGList+0x1c): undefined reference to `__cxa_pure_virtual'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTV6QGList+0x20): undefined reference to `QGList::compareItems(void*, void*)'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTV6QGList+0x24): undefined reference to `QGList::read(QDataStream&, void*& )'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTV6QGList+0x28): undefined reference to `QGList::write(QDataStream&, void*) const'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTI6QGList+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/home/psy/tmp/cc4bmlg6.o(.gnu.linkonce.r._ZTI6QGList+0x8): undefined reference to `typeinfo for QPtrCollection'
/home/psy/tmp/cc4bmlg6.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
 
 
quelqu'un pourrait m'expliquer ?
 
Taz je n'ai pas compris ce que tu veux dire. il semble que j'ai déjà installé ce qu'il faut. après je veux juste pouvoir compiler  sans problème mes exemples. quant aux tutos sur le web, j'en suis un, on verra ce que ça donne.

n°659910
lorill
Posté le 01-03-2004 à 11:38:24  profilanswer
 

1. c'est -I, pas -l ni -1
2. tu confonds lib & header

n°659915
Taz
bisounours-codeur
Posté le 01-03-2004 à 11:41:39  profilanswer
 

ben tu la section "comment compiler" et c'est tout. en grois faut laisser qmake faire tout ce qu'il faut :o

n°659917
psychotek
Posté le 01-03-2004 à 11:43:40  profilanswer
 

1- ok j'avais pas calculé
2- effectivement, peux tu m'expliquer la différence ?
 
parce que dans l'etat je n'avance pas

n°659918
psychotek
Posté le 01-03-2004 à 11:46:18  profilanswer
 

qmake, je ne sais pas ce que c'est. et sur mon tuto je n'ai pas de section "comment compiler" sinon je ne serais certainement pas là à galérer sur cette compilation. bon je vais chercher un tuto plus explicite à ce sujet.

mood
Publicité
Posté le 01-03-2004 à 11:46:18  profilanswer
 

n°659922
Taz
bisounours-codeur
Posté le 01-03-2004 à 11:49:38  profilanswer
 

tu vas sur le site de Qt. et soit un peu dégourdi. je connais rien à Qt, seulement quand j'ai voulu jouer, je suis tomber directement dessus et la compilation ne m'a posé aucun problème

n°659934
psychotek
Posté le 01-03-2004 à 11:59:39  profilanswer
 

Taz je te prierai d'être moins désagréable, ça ne sert à rien de répondre si tu ne veux pas aider. j'ai déjà vu sur d'autres posts que tu es systématiquement chiant quand tu réponds à quelqu'un, tu voudrais pas faire un effort ? essaye de répondre quelque chose de constructif et relis tes posts après les avoir écrit car une fois sur deux c'est incompréhensible.
 
d'autre part si la compilation ne t'a posé aucun problème, je ne vois pas pourquoi tu ne m'aides pas directement, pour pouvoir clore ce topic et le laisser aux gens qui en auront besoin après moi.


Message édité par psychotek le 01-03-2004 à 12:01:43
n°659944
Taz
bisounours-codeur
Posté le 01-03-2004 à 12:04:36  profilanswer
 

pourquoi ? parce qu'en allant sur le site de Qt, section documentation http://doc.trolltech.com/3.3/index.html tu clique sur tutorial #1 et là en première page il t'explique tout :o
 
alors je trouve que c'est un peu du foutage de gueule de poser des questions comme ça

n°659952
psychotek
Posté le 01-03-2004 à 12:12:57  profilanswer
 

et d'y répondre comme ça, c'est pas du foutage de gueule peut être ? si mes questions ne t'intéressent pas, tu es libre de ne pas y répondre. je t'y engage désormais, puisqu'il semble que tu te sentes obligé de devenir vulgaire, et ce toujours sans aider les autres. en d'autres termes : soit tu réponds de manière constructive et agréable, soit tu laches ce topic. mais si tu décides de répondre, c'est que tu as accepté ma question comme vallant la peine que tu y passes du temps. et si elle vaut cette peine, c'est que ce n'est pas du foutage de gueule. cqfd.
 
ou alors tu t'es dit : "tiens cette question je la trouve con et inintéressante mais je vais y répondre quand même, juste histoire de faire chier le monde, et si possible sans rien y apporter de valable". et dans ce cas tu es vraiment crétin et ça ne vaut pas vraiment la peine que j'en écrive plus à ton sujet.

n°659955
Taz
bisounours-codeur
Posté le 01-03-2004 à 12:15:28  profilanswer
 

je dis juste que tu pose une question auquelle la documentation réponds en chapitre paragraphe 1 ... je sais pas ce que ça veut dire pour toit « débuter » mais si tu commençais déjà par lire le début ça serait pas mal

n°659975
psychotek
Posté le 01-03-2004 à 12:37:45  profilanswer
 

après lecture d'un article fort intéssant (http://www.linuxfrench.net/article.php?id_article=980) , ainsi que les articles précédents et les suivants, je suis enfin parvenu à quelque chose.
 
d'une part il m'a fallu un certain temps pour calculer que qmake était installé avec qt, et qu'il fallait juste aller le chercher (dans /usr/lib/qt3/bin). j'ai finalement créé un lien symbolique pour pouvoir y accéder de partout.
 
une fois ceci fait, il faut créer un fichier .pro comme expliqué ici : http://doc.trolltech.com/3.3/qmake-manual-3.html et suivre les instructions, ça marche effectivement très bien (il ne me manquait que qmake finalement).
 
EDIT : ah oui je tiens finalement à te remercier Taz, j'étais venu chercher de l'aide pour gagner du temps, et grâce à toi j'en ai perdu beaucoup. tu aurais pu me dire, dès le début "il faut que tu utilises qmake comme expliqué sur le site de trolltech" et la question aurait été réglée. au lieu de quoi tu as préféré t'exprimer par énigmes (puisque tes réponses étaient franchement obscures) puis m'insulter. une introspection en vue ? enfin seulement si tu considère que ta réaction était anormale. si tu trouves ça naturel, alors tout va bien ;-)


Message édité par psychotek le 01-03-2004 à 12:41:37
n°660775
narry
Posté le 02-03-2004 à 12:12:58  profilanswer
 

bonjour psychotec, je voudrais stp savoir comment tu as fait dans le détail pour regler ton prob des includes, quand il ne trouvais pas le qapplication.h, parce que j'ai a peu prés le même prob, et comme je débute j'aimerais beaucoup que tu m'aide
merçi

n°660778
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-03-2004 à 12:14:01  profilanswer
 

narry a écrit :

bonjour psychotec, je voudrais stp savoir comment tu as fait dans le détail pour regler ton prob des includes, quand il ne trouvais pas le qapplication.h, parce que j'ai a peu prés le même prob, et comme je débute j'aimerais beaucoup que tu m'aide
merçi


Je viens de te dire, sur ton topic sur partmanager.h, qu'il y a de fortes chances que tu n'aies pas installé QT sur ton poste !


Message édité par Harkonnen le 02-03-2004 à 12:14:43
n°748792
zkara
Posté le 02-06-2004 à 13:37:47  profilanswer
 

Bijour
 
trs cool votre tchatche mais ça n'aboutie à rien :non:
 
Bref la seule chose ki m'a aidé c ke g t pas le seul à soufrir avec ce pblm
 
Bon mais kom g reuissi à resoudre mon pblm je v expliker mon histoire
 
Bref le qmake n a rien avoir avec ça, car g creer l'exemple du tetoriel ( le truc metric) puis g mis le qmake juska là tout va bien le makfile é créeé .
apres lors du make ou nmake j'avé ceci:
 
O début c t le fichier uic ki n'existé pas ( pour ça fastoch g fé un lien de /usr/local/qt/bin/uic -> /bin/uic )
 
mais tjrs pas de solution car il a pas trouvé les headers.
 
...
g++ -c -pipe -Wall -W -O2  -DQT_NO_DEBUG -I/usr/local/qt/mkspecs/default -I. -I/include -I.ui/ -I. -I.moc/ -o .obj/main.o main.cpp
main.cpp:3:26: qapplication.h: No such file or directory
In file included from main.cpp:4:
.ui/multiclipform.h:13:22: qvariant.h: No such file or directory
.ui/multiclipform.h:14:21: qdialog.h: No such file or directory
.ui/multiclipform.h:15:24: qclipboard.h: No such file or directory
In file included from main.cpp:4:
.ui/multiclipform.h:30: parse error before `{'
.ui/multiclipform.h:35: destructors must be member functions
.ui/multiclipform.h:49: parse error before `public'
.ui/multiclipform.h:51: virtual outside class declaration
.ui/multiclipform.h:52: virtual outside class declaration
 
 
 
 
pourtant g bien mis les lignes suivantes dans mon fichier  .bash_profile
 
QTDIR=/usr/local/qt
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
 
 
Bref le hic c kil fo taper cette commande ( pour moi ça a marché :bounce:
 
 
export QTDIR=/usr/local/qt/
 
Voila


Message édité par zkara le 02-06-2004 à 13:57:05

---------------
:.:::..::[[Php Files Xplorer]]:..:..:::.:..:philex.sf.net::.:.:..::.:..:.:..:...::::::::::
n°748821
HelloWorld
Salut tout le monde!
Posté le 02-06-2004 à 14:07:06  profilanswer
 

Citation :

je fais donc gcc -B /usr/lib/qt3 exemple.cpp  et j'ai un gros message d'erreur


Au passage, utilise g++ et non gcc.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°749083
neg'gwada
rafix 971
Posté le 02-06-2004 à 16:38:12  profilanswer
 

vous codez tous sous linux ou quoi???

n°750326
zkara
Posté le 03-06-2004 à 11:10:31  profilanswer
 

BIN Wéééééééééééééééé  QT c pour linux sinon pkoi j'aurai pris 7 lib si g t sous win ??


---------------
:.:::..::[[Php Files Xplorer]]:..:..:::.:..:philex.sf.net::.:.:..::.:..:.:..:...::::::::::
n°750373
neg'gwada
rafix 971
Posté le 03-06-2004 à 11:34:55  profilanswer
 

pourquoi vous n'utilisez pas wxwidget? c'est une question de preference?


---------------
--- WinSplit Revolution ---
n°750389
HelloWorld
Salut tout le monde!
Posté le 03-06-2004 à 11:41:24  profilanswer
 

Citation :

QT c pour linux


http://doc.trolltech.com/3.3/aboutqt.html

Citation :

pourquoi vous n'utilisez pas wxwidget?


Moins d'outils, moins évoluée, moins de doc, moins évidente à utiliser...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°750416
zkara
Posté le 03-06-2004 à 11:55:57  profilanswer
 

Bon HelloWorld je reformule ma réponse
 
si g opté pour QT c pour developé mes app sous linux, et si g t sous win j'aurai choisit cpp builder or delphi (ai je pas raison ??)
 
et pour le wxwidget g pas essayé , j'hésité entre le gtk (glade) et le qt , enfin de compte je crois ke g choisit le CUL-T :p désolé pour terme mais en ce moment me fé chier :)))))))


---------------
:.:::..::[[Php Files Xplorer]]:..:..:::.:..:philex.sf.net::.:.:..::.:..:.:..:...::::::::::
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  programmation QT : problème de débutant

 

Sujets relatifs
[Posgres+Tomcat] Problème de driver[Coppermine] problème d'instalation coppermine :??: (galerie d'image)
[ASP] Problème avec formulaireDébutant en Java, j'ai du mal a mis trouver.
Plusieurs questions générale sur la programmation[DEBUTANT]Problème avec const char
Chu un naabz , besoin de cours DEBUTANTpetit probleme epineux d'authentification automatique
Probleme de menu 
Plus de sujets relatifs à : programmation QT : problème de débutant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR