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 :

Problème de connect

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 57
    Par défaut Problème de connect
    Bonjour, nouveau jour nouveau problème

    Aujourd'hui donc mon problème est lié à cette erreur :
    error: no matching function for call to ‘curv::connect(Population&, const char*, curv* const, const char*)’
    Elle m'apparait deux fois.
    La première fais référence à cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!QObject::connect(pop, SIGNAL(mort()),this, SLOT(repain()))){qDebug("erreur de connection entre pop.mort() et repain()");}
    et la seconde à celle ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!QObject::connect(pop, SIGNAL(naissance()),this, SLOT(repain()))){qDebug("erreur de connection entre pop.naissance() et repain()");}
    le code de la méthode où se trouve ces deux connect est le constructeur d'une QFrame contenant un QwtPlotCurve, en voici le code, avec les include :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #include <qapplication.h>
    #include <qpainter.h>
    #include <qwt_math.h>
    #include <qwt_symbol.h>
    #include <qwt_curve_fitter.h>
    #include "curv.h"
     
     
     
    //
    //  CONSTRUCT MAIN WINDOW
    //
    curv::curv(int size, int xmin, int xmax, int ymin, int ymax, double *xval, double *yval, int ms, Population &population): QFrame(),pop(population)
    {
        this->Size=size;
        this->xval=new double [size];
        this->yval=new double [size];
        setFrameStyle(QFrame::Box|QFrame::Raised);
        setLineWidth(2);
        setMidLineWidth(3);
     
        const QColor bgColor(30,30,50);
        QPalette p = palette();
        p.setColor(backgroundRole(), bgColor);
        setPalette(p);
     
        QwtSplineCurveFitter* curveFitter;
     
        xMap.setScaleInterval(xmin, xmax);
        yMap.setScaleInterval(ymin, ymax);
     
        curve.setPen(QPen(QColor(150,150,200),2));
        curve.setStyle(QwtPlotCurve::NoCurve);
        curve.setCurveAttribute(QwtPlotCurve::Fitted, true);
        curveFitter = new QwtSplineCurveFitter();
        curveFitter->setSplineSize(150);
        curve.setCurveFitter(curveFitter);
     
        QwtSymbol sym;
        sym.setStyle(QwtSymbol::XCross);
        sym.setPen(QPen(Qt::yellow,2));
        sym.setSize(7);
     
        curve.setSymbol(sym);
     
        for (int i=0; i<Size; i++)
        {
            this->xval[i]=xval[i];
            this->yval[i]=yval[i];
        }
        curve.setRawData(this->yval,this->xval,Size);
     
        if (!QObject::connect(pop, SIGNAL(mort()),this, SLOT(repain()))){qDebug("erreur de connection entre pop.mort() et repain()");}
        if (QObject::connect(pop,SIGNAL(naissance()), this, SLOT(repain()))){qDebug("erreur de connection entre pop.naissance() et repain()");}
        //newValues();
     
        //
        // start timer
        //
    //    (void)startTimer(ms);
    }
    Pour info, pop est une références. J'ai testé en passant pop comme pointeur mais ça ne change rien. J'ai fais Qmake à chaque test que j'ai fais.

    Mercis pour tout info m'aidant à résoudre et comprendre le problème.

  2. #2
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    repain ? Tu as définis ce SLOT ou c'est repaint ?

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 57
    Par défaut
    j'ai définis ce slot, voici son code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void curv::repain()
    {newValues();repaint();}

  4. #4
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Citation Envoyé par ailonn Voir le message
    j'ai définis ce slot, voici son code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void curv::repain()
    {newValues();repaint();}
    Tu as bien déclaré tes SLOT et SIGNAUX personnalisés dans le .h ?

    http://qt.developpez.com/doc/latest/...-small-example

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 57
    Par défaut
    Oui.
    Enfin... Mon problème maintenant viens de la classe Population appelle le constructeur par copie de QObject qui est privé...

    Voila le header de Population :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #ifndef Population_H
    #define Population_H
     
    #include "individus.h"
    #include <cmath>
    #include "individusETvoisinage.h"
    #include <QObject>
    class Population : protected QObject
    {
        Q_OBJECT
    signals:
        void naissance();
        void mort();
    public:
        //constructeur
        Population (QObject *parent);
        Population(double b,double d, double zi,double r, int quantiteInit, double uMax, QObject *parent);//, lib::Coordonnee dimension);
        //destructeur
        ~Population();
     
        //méthodes membres
        double calcTxGlobale();
        double horlogeExponentiel(double tx);
     
        void infoPopIndividus();
        void infoPop();
        void simulation();
        //accesseurs
        QVector<individusETvoisinage>& getVect(){return population;}
        int getSize(){return population.size();}
        Individus getInd(int i){return population.at(i).individus;}
     
    private:
        //méthode membres
        void calculVoisin(int indice);
        void MaJVoisinage(int indice, bool del=true);//del indique si la maj du voisinage correspond à la suppresion d'un individus des listes de voisins ou à son ajout
     
        void initPopulation(int quatiteInit);
        void initVoisinage();
     
        double calcLambdaB();
        double calcLambdaD();
        double calcLambdaC();
     
        //attributs
        QVector<individusETvoisinage> population;
     
        //caractéristiques de l'univers
        //    individusETvoisinage **environnement;
        //    lib::Coordonnee dimension;
     
        //caractéristiques des individus
        double zoneInteraction;
        double b; //taux de naissance
        double d; //taux de décès
        double r; //écart type du cône de dispersion
        double uMax;
        individusETvoisinage *data;
    };
     
    #endif // Population_H

  6. #6
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Citation Envoyé par ailonn Voir le message
    Oui.
    Enfin... Mon problème maintenant viens de la classe Population appelle le constructeur par copie de QObject qui est privé...
    Tu as réglé le premier problème ?

    Je n'ai pas compris ton nouveau problème ? Tu n'arrives pas à dériver ta classe de QObject ? A cause de ton héritage en protected ?

Discussions similaires

  1. Problème de connection avec phpmyadmin
    Par callo dans le forum Outils
    Réponses: 4
    Dernier message: 20/05/2005, 13h35
  2. Problème de connection
    Par Marsouin dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/11/2004, 13h22
  3. [Interbase] Problème de connections
    Par yolepro dans le forum InterBase
    Réponses: 3
    Dernier message: 24/02/2004, 15h31
  4. Problème de connection
    Par Trahwn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/09/2003, 13h58
  5. problème de connection mysql par tcp/ip
    Par leroyphil dans le forum Administration
    Réponses: 5
    Dernier message: 04/09/2003, 18h27

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