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 :

QWizard et Q_OBJECT pour les slots


Sujet :

Qt

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 55
    Points : 45
    Points
    45
    Par défaut QWizard et Q_OBJECT pour les slots
    Bonjour!

    Savez-vous comment créer des slots personnalisés dans un QWizard?

    Par exemple mon bouton "boutParcourir" devrait lancer une boite de dialogue pour chercher un fichier.

    Mais lorsque je rajoute la macro Q_OBJECT dans la classe, le programme me fait un :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    nouvellegrille.cpp:(.text+0x10fe): undefined reference to `vtable for NouvelleGrille'

    J'ai passé ma journée à chercher mais QWizard ne semble pas très utilisé. J'ai quand même lu que selon certains QWizard n'hérite pas de QObject et donc ne peut pas accepter la macro, pourtant la doc dit qu'il herite de QObject.

    Pour le moment la seule solution que j'ai trouvé c'est d'utiliser le signal "clicked()" du bouton pour appeler un slot de le fenetre parent (slotCheminFichier()), celui-ci emet, après avoir ouvert la boite de dialogue, un signal contenant un QString avec le chemin du fichier qui est alors receptionné par le SLOT 'setText' de la zone de saisie du chemin.
    En gros je me sert de la fenetre parent pour faire mon slot personnalisé.

    dans le constructeur du QWizard:
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(boutParcourir,SIGNAL(clicked()),mere,SLOT(slotCheminFichier()));
    dans le slot du parent:
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    emit signalEnvoiChemin(QString(QFileDialog::getOpenFileName(this, "Ouvrir une fichier")));
    dans le constructeur du QWizard:
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(mere,SIGNAL(signalEnvoiChemin(QString)),cheminBrute,SLOT(setText(QString)));
    Ca marche très bien, mais c'est tordu et ça encombre la classe parent, surtout que j'ai d'autre slots a faire.

    Quelqu'un aurait une idée de comment faire fonctionner les slots dans un QWizard? Merci d'avance....

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    QWizard (ou plutôt la classe qui en dérive) accepte tout à fait la macro Q_OBJECT, pas de soucis. Là, c'est juste qu'il te manque le fichier moc (automatiquement généré si tu utilises les fichiers pro, si le .h est dans la section HEADERS, et enfin, si tu appeles bien qmake (et non qmake -project) avant de compiler)

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 55
    Points : 45
    Points
    45
    Par défaut
    Salut,
    j'utilise KDevelop pour mes projets, il gère normalement tout tout seul. Après ce que tu as dit j'ai quand même nettoyé les fichiers générés et relancé un build et.... ça fonctionne.

    Donc merci, ça me sort d'une impasse et ça m'aidera à l'avenir où KDevelop me refait un coup bas .

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/10/2013, 09h18
  2. Les slots pour un débutant
    Par sybe30 dans le forum Débuter
    Réponses: 15
    Dernier message: 29/06/2011, 12h41
  3. Problème avec Q_Object et les SLOTS
    Par Shr3ck dans le forum Débuter
    Réponses: 3
    Dernier message: 06/04/2010, 14h56
  4. Réponses: 2
    Dernier message: 08/10/2002, 19h26
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 22h45

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