2009-07-19 16 views
3

Ich arbeite an einem einfachen Zeichnen Widget in Qt (alle folgenden ist innerhalb einer Klasse). In der Header-Datei habe ichQt Moc verursacht "undefinierten Bezug auf:" Fehler

private: 
QPointF translateToCanvas (QPointF input); 

und in der CPP-Datei definiert habe ich

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

Irgendwo anders im Code definiert ist, nenne ich dies mit

QPointF newPoint = translateToCanvas(anotherPoint); 

Immer, wenn ich kompilieren , es gibt mir den Fehler "undefinierter Verweis auf` MyClass :: translateToCanvas (QPointF) '", und dies geschieht innerhalb des Zeugs, das moc erzeugt und nicht wirklich mein literaler Code.

Was könnte diesen Fehler in Qt verursachen? (Ich verwende Qt Creator mit Qt 4.5.)

Antwort

9

Dies hat nichts mit Qt zu tun.

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

definiert eine eigenständige Funktion namens translateToCanvas, die nichts mit der privaten Methode zu tun hat Sie in Ihrer Klasse deklariert, andere als Happening den gleichen Namen zu haben. Sie wollen

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

Vielen Dank, suchte 4 Stunden für eine Lösung. – Buron

Verwandte Themen