我在Windows 7 Ultimate 32位上使用Qt Creator 2.0.1和Qt 4.7.0(32位).
请考虑以下代码,这是产生错误的最小代码:
class T : public QObject, public QGraphicsItem
{
Q_OBJECT
public:
T() {}
QRectF boundingRect() const {return QRectF();}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget) {}
};
int main()
{
T t;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码片段导致以下链接器错误:
在函数"T"中:
未定义引用`vtable for T'
未定义引用`vtable for T'
在函数`~T'中:
未定义引用`vtable for T'
未定义引用`vtable for T'
如果我注释掉包含的行Q_OBJECT,它编译得很好.我需要信号和插槽,QGraphicsItem所以我需要Q_OBJECT.
代码有什么问题?谢谢.