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

Discussion :

QObject::connect ne fonctionne pas

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut QObject::connect ne fonctionne pas
    Bonjour,

    J'ai le code suivant, dans le constructeur de l'une de mes classes (simplifié):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QPushButton entrer = new QPushButton;
    QComboBox langues = new QComboBox;
    QObject::connect(entrer, SIGNAL(clicked()), this, SLOT(addToInputStack()));
     
    QObject::connect(langues, SIGNAL(currentIndexChanged(int)), this, SLOT(changeLang(int)));
    Et à l'exécution, j'ai ces erreurs:
    Object::connect: No such slot QObject::addToInputStack() in console.cpp:18
    Object::connect: No such slot QObject::changeLang(int) in console.cpp:24
    Or, ceci est dans une classe dérivée de QObject, implémentant les deux fonctions.

    Pourquoi la méthode connect va-t-elle chercher les fonctions dans QObject et pas dans ma classe? (nommée Console)

    Merci d'avance,
    ProgVal

    EDIT: et d'après le débogueur, à la ligne où est présent connect, this pointe bien vers un objet de type Console

  2. #2
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Déjà, pas la peine de préfixer par QObject:: si tu te trouves dans une classe qui en hérite (si elle hérite de QWidget, elle hérite forcément de QObject).

    Ensuite, tu as bien passé ton fichier .h à la moulinette du moc ?

  3. #3
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Citation Envoyé par Alp Voir le message
    Déjà, pas la peine de préfixer par QObject:: si tu te trouves dans une classe qui en hérite (si elle hérite de QWidget, elle hérite forcément de QObject).
    Ok. Ma classe hérite directement de QObject.

    Citation Envoyé par Alp Voir le message
    Ensuite, tu as bien passé ton fichier .h à la moulinette du moc ?
    C'est à dire? (Google n'est pas très explicite)

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Citation Envoyé par ProgVal Voir le message
    C'est à dire? (Google n'est pas très explicite)
    Le moc est un outil qui permet de faire accepter à ton compilateur C++ les nouveautés de Qt : les signaux, les slots...

    Si tu utilises qmake pour la compilation, alors tu utilises forcément le moc. Sinon, passe à qmake !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575

  6. #6
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    J'utilise le compilateur de Qt Creator (ça devrait être le qmake, normalement ^^)
    J'ai vérifié en lançant qmake à partir de la console => aucun changement

    EDIT: j'avais mis mes slots en temps que public; je les ai mis en public slots, mais aucun changement.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/02/2013, 15h03
  2. Connection String ne fonctionne pas !
    Par NTIC13 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 22/02/2011, 12h20
  3. RPC over HTTP (connection ne fonctionne pas)
    Par E n x dans le forum Exchange Server
    Réponses: 0
    Dernier message: 29/11/2008, 17h11
  4. Auto-connect ne fonctionne pas
    Par guyguy333 dans le forum Débuter
    Réponses: 17
    Dernier message: 06/09/2008, 21h41
  5. [BasicDataSource] Connection.close() ne fonctionne pas?
    Par Jidefix dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 27/02/2008, 20h29

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