我正在使用Qt中的一个简单的绘图小部件(以下所有内容都在一个类中)。在头文件中,我已经定义了
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。)
答案 0 :(得分:10)
这与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);
}