PyQtを使用してプロジェクトのプロトタイプを作成し、そこで機能させました。現在、C ++に変換しようとしていますが、問題が発生しています。
Q_OBJECTマクロを挿入しないと、コンパイルして機能しますが、コメントアウトすると、次のエラーが発生します。
Undefined symbols:
"vtable for MapView", referenced from:
MapView::~MapView()in mapview.o
MapView::~MapView()in mapview.o
MapView::MapView(QObject*)in mapview.o
MapView::MapView()in mapview.o
"MapView::staticMetaObject", referenced from:
MapView::MapView(QObject*)in mapview.o
MapView::MapView()in mapview.o
ヘッダーは次のとおりです。
#ifndef MAPVIEW_H
#define MAPVIEW_H
#include <QtGui>
#include <QObject>
class MapView : public QGraphicsScene
{
//Q_OBJECT
public:
MapView();
explicit MapView(QObject *parent = 0);
QGraphicsPixmapItem *mappixmap;
~MapView();
private:
bool dragging;
float offsetX, offsetY, downoffsetX, downoffsetY;
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
};
#endif // MAPVIEW_H
2番目の質問は、ここでQ_OBJECTマクロを省略した場合、悪いことが起こりますか?
はい、QGraphicsSceneを「ビュー」と呼ぶのはばかげていることを私は知っています。