I'm using Qt Creator 2.0.1 with Qt 4.7.0 (32 bit) on Windows 7 Ultimate 32 bit.
Consider the following code, which is a minimum to produce the error:
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;
}
The above code fragment causes the following linker errors:
In function `T':
undefined reference to `vtable for T'
undefined reference to `vtable for T'
In function `~T':
undefined reference to `vtable for T'
undefined reference to `vtable for T'
If I comment out the line that contains Q_OBJECT
, it compiles fine. I need signal and slots with QGraphicsItem
so I need Q_OBJECT
.
What is wrong with the code? Thanks.