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: No such signal QRadioButton::checked()

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2016
    Messages : 9
    Par défaut QObject::connect: No such signal QRadioButton::checked()
    Bonjour,

    Lors du débugage de l'application RTKBASE disponible sur GITHUB, cette dernière plante avec le message "Object::connect: No such signal QRadioButton::checked()" (voir copie d'écran en pièce jointe)

    Si vous savez de quoi cela provient merci pour votre aide.

    Merci par avance

    CRM

    https://github.com/Francklin2/RTKLIB_Touchscreen_GUI

    https://github.com/Francklin2/RTKLIB...onsstr2str.cpp
    Images attachées Images attachées

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Comme le dit si bien le message d'erreur, la classe QRadioButton ne possède aucun signal checked(). Les seuls qu'elle possède sont ceux hérités de la classe QAbstractButton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void 	clicked(bool checked = false)
    void 	pressed()
    void 	released()
    void 	toggled(bool checked)
    ainsi que QWidget et QObject.

    De plus, si on regarde tes deux lignes 31 et 32, tu commets trois autres erreurs :
    1. des parenthèses en trop :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      SLOT(on_radioButtonPositionAuto_clicked(bool checked)()) );
      SLOT(on_radioButtonPositionManual_clicked(bool checked)()) );
    2. le nom du paramètre ne doit pas apparaître dans le connect(), seul le type :
      SLOT(on_radioButtonPositionAuto_clicked(bool checked)) SLOT(on_radioButtonPositionAuto_clicked(bool)),
      SLOT(on_radioButtonPositionManual_clicked(bool checked)) SLOT(on_radioButtonPositionManual_clicked(bool))
    3. un slot doit avoir au plus autant de paramètres correspondants que le signal auquel il est connecté, car ses paramètres d'entrée sont obtenus à partir de ceux du signal émit. Tu dois donc connecter obligatoirement tes deux slots on_radioButtonPositionAuto_clicked(bool) et on_radioButtonPositionManual_clicked(bool) à un signal qui possède au minimum un paramètre bool.

    Parmi les 4 slots listé ci-dessus, toggled(bool) est celui que tu voudras sûrement utiliser (QObject:: devant n'est pas nécessaire vu que tu te situes dans une classe qui hérite de QObject) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    connect(ui->radioButtonPositionAuto,   SIGNAL(toggled(bool)), this, SLOT(on_radioButtonPositionAuto_clicked(bool)) );
    connect(ui->radioButtonPositionManual, SIGNAL(toggled(bool)), this, SLOT(on_radioButtonPositionManual_clicked(bool)) );
    connect(ui->radioButtonPositionAuto,   SIGNAL(toggled(bool)), this, SLOT(AfficheOptionString()));
    auquel on préférera la nouvelle syntaxe Qt5/C++11 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    connect(ui->radioButtonPositionAuto,   &QRadioButton::toggled, this, &OptionsStr2str::on_radioButtonPositionAuto_clicked);
    connect(ui->radioButtonPositionManual, &QRadioButton::toggled, this, &OptionsStr2str::on_radioButtonPositionManual_clicked);
    connect(ui->radioButtonPositionAuto,   &QRadioButton::toggled, this, &OptionsStr2str::AfficheOptionString);
    Note que tu aurais également pu effectuer ces connexions dans le designer qui ne t'aurait donné d'autre choix que d'utiliser des signaux/slots existants.

    Sinon en regardant rapidement le reste de ton fichier :
    • applique-toi à mieux indenter ton code ;
    • beaucoup de variables globales non justifiées et plus ou moins mélangées avec des locales portant le même nom.

  3. #3
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2016
    Messages : 9
    Par défaut Object::connect: No such slot
    Bonjour,

    Merci pour la qualité et la rapidité de votre réponse.

    J'ai apporté les modifications proposées au fichier OptionStr2str.cpp. Maintenant lors du débugage de l'application RTKBASE, cette dernière plante avec le message "Object::connect: No such slot OptionsStr2str::" (voir copie d'écran et fichier OptionStr2str.cpp modifié en pièce jointe)

    Si vous savez de quoi cela provient merci pour votre aide.

    Merci par avance

    CRM

    https://github.com/Francklin2/RTKLIB_Touchscreen_GUI
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  4. #4
    Invité
    Invité(e)
    Par défaut
    Et encore une fois il a raison
    Regarde ton .h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private slots:
     
     
        void on_pushButtonManual_clicked();
        void on_radioButtonPositionAuto_clicked();
        void on_radioButtonPositionManual_clicked();
     
        void on_UpdateOptionspushButton_clicked();
    Je ne vois aucun paramètre de type bool, et toi ?

    Si tu n'en as pas l'utilité alors supprime-le de la connexion, dans ce sens tu as le droit d'avoir moins de paramètres.

  5. #5
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2016
    Messages : 9
    Par défaut Undefined reference to
    Bonjour,

    Grâce à vos précieux conseils, j'avance à petit pas dans le débugage de RTKBASE disponible sur RTKLIB.

    Lors du débugage, RTKBASE plante avec le message "Undefined reference to: OptionStr2Str::Clicked (bool) moc_optionstr2str.cpp" (voir copie d'écran en pièce jointe)

    Si vous savez de quoi cela provient merci pour votre aide.

    Merci par avance

    CRM


    Fichiers sources originaux:
    https://github.com/Francklin2/RTKLIB_Touchscreen_GUI
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    Cette erreur n'intervient pas au débogage, mais à l'édition des liens. Et c'est le fichier moc qui n'est pas à jour.
    Exécute qmake et recompile. Nettoie ton projet si cela persiste.

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/11/2014, 21h40
  2. Réponses: 0
    Dernier message: 27/10/2010, 01h37
  3. probleme QObject::connect SLOT/SIGNAL
    Par sebatlante dans le forum Qt
    Réponses: 3
    Dernier message: 22/03/2008, 11h39
  4. QObject::connect: No such slot
    Par guepe dans le forum Qt
    Réponses: 2
    Dernier message: 22/12/2005, 10h24
  5. Qt::connect: no such slot ...
    Par fdrouhin dans le forum Qt
    Réponses: 8
    Dernier message: 02/12/2004, 19h11

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