Я использую 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 ':
undefined ссылка на `vtable для T '
undefined ссылка на `vtable для T '
В функции `~ T ':
undefined ссылка на `vtable для T '
undefined ссылка на `vtable для T '
Если я прокомментирую строку, содержащую Q_OBJECT
, она компилируется отлично. Мне нужен сигнал и слоты с QGraphicsItem
, поэтому мне нужно Q_OBJECT
.
Что не так с кодом? Спасибо.