我在 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;
}
上面的代码片段导致以下链接器错误:
在函数“T”中:
未定义对 `vtable for T' 的引用
未定义对 `vtable for T' 的引用
在函数“~T”中:
未定义对 `vtable for T' 的引用
未定义对 `vtable for T' 的引用
如果我注释掉包含的行Q_OBJECT
,它编译得很好。我需要信号和插槽,QGraphicsItem
所以我需要Q_OBJECT
.
代码有什么问题?谢谢。