我正在使用Qt Creator 2.0.1和Qt 4.7.0(32位)在Windows 7 Ultimate 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;
}
上面的代码片段导致以下链接器错误:
在函数“T”中: 找不到符号引用`T的vtable' 找不到符号引用`T的vtable'
在函数“〜T”中: 找不到符号引用`T的vtable' 找不到符号引用`T的vtable'
如果我注释掉包含`Q_OBJECT'的那一行,它就可以编译通过。 我需要在
QGraphicsItem
中使用信号和插槽,因此我需要Q_OBJECT
。这段代码有什么问题?谢谢。