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 :

Problèmes de slots et signals


Sujet :

Qt

  1. #1
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut Problèmes de slots et signals
    Hello!

    J'ai des erreurs lors de l'exécution de la commande "make" sur mon projet. C'est un projet très basic affichant simplement une fenêtre avec une barre de menu. Le projet marchait avec d'ajouter la macro "Q_OBJECT" dans la classe gérant les signaux de ma barre de menu. C'est vraiment l'ajout de cette ligne qui pose problème. Si je la mais en commentaire l'exécutable se crée sans prob, mais évidemment sans le support des signaux...

    Ca pose problème lors que l'exécution de la commande "moc", du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    130 D:\PRSEM\Hiver05\_temp\Ebauche1\Makefile.Release multiple definition of `PSMainWindow::metaObject() const'
    130 D:\PRSEM\Hiver05\_temp\Ebauche1\Makefile.Release multiple definition of `PSMainWindow::qt_metacall(QMetaObject::Call, int, void**)'
    130 D:\PRSEM\Hiver05\_temp\Ebauche1\Makefile.Release multiple definition of `PSMainWindow::staticMetaObject'
    Avec quelques warning également comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    106 D:\PRSEM\Hiver05\_temp\Ebauche1\Makefile.Release [Warning] overriding commands for target `release\moc_PSMainWindow.cpp'
    103 D:\PRSEM\Hiver05\_temp\Ebauche1\Makefile.Release [Warning] ignoring old commands for target `release\moc_PSMainWindow.cpp'
    ...
    D'après la doc QT4, si ce genre d'erreur apparaît, il faut refaire un "qmake", ce que j'ai fait. Egalement un "qmake -project".

    D'autre projet passe très bien à la compilation/linkage sur mon poste, le code étant très similaire...!

    Quelqu'un aurait-il une bouet de sauvetage à me lancer...?
    Merci d'avance!!
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

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

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu as inclu ton fichier moc dans ton .h ou dans ton cpp, il ne faut pas si tu as créé ton .pro avec un qmake -project.
    Analyse un peu ton erreur : tu as des définitions multiples de fonctions. Celles-ci ne sont pas de toi, tu regardes dans la doc, tu te rends compte que c'est dû à ta macro Q_OBJECT qui déclare que ton fichier doit être passé à la moulinette moc. Or ce fichier moc est inclus dans tonf ichier .cpp. La première chose que je ferai est d'enlever cette inclusion et voir si ça marche.

  3. #3
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    J'ai pas fait moi même de "#include" d'un fichier moc ... J'ai essayé d'enlever la macro Q_OBJECT et ça marche, mais avec pas ...

    Je sais pas vraiment si j'ai bien compris ce que tu voulais me dire ...
    Mais en fait, j'ai repris un autre fichier, je l'ai modifier comme je voulais et maintenant ça marche... J'avoue que j'ai pas vraiment compris pourquoi ça marche avec ce nouveau fichier et pas avant ... Y a "a priori" aucune différence ...

    Merci beaucoup pour ta réponse !
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

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

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu peux envoyer ici ton header et ton fichier C++ minimaliste qui fait l'erreur ?

  5. #5
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Ben le problème, c'est que je l'ai écrasé... J'ai recommencé à zéro, et j'ai pas gardé le code qui posait l'erreur... Mouais je sais c'est pas très malin si on veut comprendre pourquoi ça marchait pas... Désolé... Maintenant ça marche, mais si jamais ça me refait la même erreur, je manquerai pas de te prévenir !

    Merci beaucoup de ton aide !
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de slot-signal
    Par Fracass dans le forum Autres
    Réponses: 0
    Dernier message: 24/03/2009, 19h58
  2. Problème de SLOT&SIGNALS et autres .
    Par Asget dans le forum Débuter
    Réponses: 1
    Dernier message: 17/06/2008, 09h12
  3. Réponses: 4
    Dernier message: 16/04/2008, 17h04
  4. Problème de slot avec un QLabel
    Par Zec Merquise dans le forum Qt
    Réponses: 8
    Dernier message: 15/12/2006, 13h23
  5. Réponses: 3
    Dernier message: 21/03/2006, 10h37

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