2009-07-19 40 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

相关问题