2009-07-19 2 views
3

Je travaille sur un widget de dessin simple dans Qt (tout ce qui suit est dans une classe). Dans le fichier d'en-tête, je l'ai définiQt's moc causant "référence non définie à:" erreur

private: 
QPointF translateToCanvas (QPointF input); 

et dans le fichier RPC que je l'ai défini

QPointF translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 

Quelque part ailleurs dans le code, j'appelle cela avec

QPointF newPoint = translateToCanvas(anotherPoint); 

Chaque fois que je compile , il me donne l'erreur "référence non définie à` MyClass :: translateToCanvas (QPointF) '", et cela se passe dans les choses que moc génère et pas réellement mon code littéral.

Ce qui pourrait être à l'origine de cette erreur dans Qt? (J'utilise Qt Creator avec Qt 4.5.)

Répondre

9

Cela n'a rien à voir avec Qt.

QPointF translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 

définit une fonction autonome nommée translateToCanvas, qui n'a rien à voir avec la méthode privée que vous avez déclaré dans votre classe, autre que arrive à avoir le même nom. Vous voulez

QPointF MyClass::translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 
+1

Merci, recherché 4 heures pour une soultion. – Buron