2009-07-19 38 views
3

我在Qt的一個簡單的畫圖窗口小部件(以下所有的是一個類中)工作。在頭文件,我已經定義Qt的MOC導致「未定義的引用:」錯誤

private: 
QPointF translateToCanvas (QPointF input); 

,並在CPP文件我已經在代碼中定義

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

別的地方,我稱這種與

QPointF newPoint = translateToCanvas(anotherPoint); 

每當我編譯,它給了我錯誤「未定義的引用'MyClass :: translateToCanvas(QPointF)'」,這是發生在moc生成的東西里面,而不是我的文字代碼。

什麼能Qt中會造成這個錯誤? (我使用Qt Creator的使用Qt 4.5。)

回答

9

此無關使用Qt。

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

定義了一個名爲translateToCanvas一個獨立的函數,它無關,與你在你的類中聲明不是發生在具有相同名稱的其他私有方法。你想

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

謝謝,搜索4小時爲靈魂。 – Buron 2012-10-14 16:45:52

相關問題