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

C++ Discussion :

Fonction error non déclarée


Sujet :

C++

  1. #1
    Membre confirmé Avatar de Nileeda
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 27
    Par défaut Fonction error non déclarée
    Bonjour,

    Je suis en train de faire un programme en C++ sur Qt afin de pouvoir récupérer des trames GPS.
    Sur une ligne récupérée sur Internet afin de m'aider à progresser, j'ai une erreur qui apparaît et qui semble venir de la fonction "error".
    Problème étant que je ne sais pas comment résoudre ce problème et que la recherche du mot clé "error" sur Google mène à des résultats très divers et variés et souvent sans grand intérêt pour mon cas...
    Y'aurai-t-il une âme charitable pour venir à ma rescousse ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <QCoreApplication>
    #include <QDebug>
    #include <QIODevice>
    #include <QObject>
    #include <QSerialPort>
    #include <qSerialPort.h>
    #include <QString>
     
    #define PORT "/dev/ttyUSB0"
     
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        QString dataGPS;
        //const char *data;
        QSerialPort *port = new QSerialPort(QLatin1String(PORT));
     
        port->open(QIODevice::ReadOnly);
     
        port->setBaudRate(QSerialPort::Baud4800);
        port->setDataBits(QSerialPort::Data8);
        port->setStopBits(QSerialPort::OneStop);
        port->setParity(QSerialPort::NoParity);
        port->setFlowControl(QSerialPort::NoFlowControl);
     
        //port->open(QIODevice::ReadOnly);
     
        cout << "Lecture en cours" << endl;
     
        if(!port->open(QIODevice::ReadOnly)){
            emit error(QObject::tr("error %1").arg(port->error()));
            return 0;
        } else {
            dataGPS = QString::fromLatin1(port->readLine());
            qDebug() << dataGPS << endl;
        }
    }
    Erreur : 'error' was not declared in this scope

    Je travaille sur Ubuntu 14.04 LTS avec QtCreator 3.0.1 basé sur Qt 5.2.1.

    Merci d'avance !
    Bonne journée

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    emit error(QObject::tr("error %1").arg(port->error()));
    je ne travaille pas avec Qt du tout, mais tu essaye d'envoyer un signal error qui n'existe pas.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Par défaut
    bonjour, tu ne peux mettre des signaux et des slots que dans des classes derivant de QObject (classe de base) donc pas dans ta fonction main.si ton programme doit avoir une interface graphique par exemple une classe Mainwindow derivant de QMainwindow je te conseillerais de mettre tout ce que tu as mis pour le moment dans ta fonction main (init de ton port serie) dans le constructeur de ta classe MainWindow et tu pourras aussi declarer un signal error dans cette classe et un slot associé si tu as vraiment besoin de ce signal. et n'oublie pas de faire une declaration de ta classe Mainwindow car dans le premier projet que tu as posté tu avais juste mis une definition d'une fonction membre de Mainwindow sans faire de declaration de ta classe Mainwindow (dans un fichier header par ex). si tu ne veux pas d'interface graphique à ton programme alors supprime ta ligne emit error ..... et laisse le projet tel quel.tu pourrais aussi faire un objet derivant de QObject avec une methode qui appelle emit error (apres mis dans le constructeur de cet objet le connect entre le signal error et le slot associé et avoir declaré le signal error dans la declaration de l'objet) que tu mets dans ton main sans avoir d'interface graphique....

Discussions similaires

  1. fonctions non déclarée et inconnue
    Par despey dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/06/2009, 14h16
  2. Réponses: 2
    Dernier message: 02/02/2009, 12h09
  3. Fonction On Error non prise en compte
    Par muppetshow dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/10/2008, 15h39
  4. Réponses: 9
    Dernier message: 27/09/2006, 15h58
  5. fonction utilisateur non reconue par sql server 2000
    Par ouedmouss dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/09/2005, 07h46

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