ailonn | Bonjour, nouveau jour nouveau problème Aujourd'hui donc mon problème est lié à cette erreur :
Citation :
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 :
- if (!QObject::connect(pop, SIGNAL(mort()),this, SLOT(repain()))){qDebug("erreur de connection entre pop.mort() et repain()" );}
|
et la seconde à celle ci :
Code :
- 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 :
- #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 (!:connect(pop, SIGNAL(mort()),this, SLOT(repain()))){qDebug("erreur de connection entre pop.mort() et repain()" );}
- if (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. Message édité par ailonn le 19-02-2010 à 13:30:40
|