【发布时间】:2018-11-13 07:14:27
【问题描述】:
我正在从QGraphicsRectItem 创建对象并添加到Qgraphicscene(scene)。
我想获取对象(qgraphicsrectitem)的每个movement(pos),以便我对Qgraphicsrectitem 进行子类化。但是在这堂课中,我遇到了一些错误。
如何在场景中更改对象位置?
错误:
“staticMetaObject”不是“
QGraphicsRectItem”的成员 {&QGraphicsRectItem::staticMetaObject,qt_meta_stringdata_ItemHandler.data
ItemHandler.h
#include <QObject>
#include <QGraphicsRectItem>
class ItemHandler : public QGraphicsRectItem, public QObject
{
Q_OBJECT
public:
ItemHandler(QGraphicsItem *parent = 0 );
~ItemHandler();
protected:
QVariant itemChange(GraphicsItemChange change, const QVariant &value);
signals:
void objectHandlePosChanged(QPointF value);
};
ItemHandler.cpp
#include "itemhandler.h"
ItemHandler::ItemHandler(QGraphicsItem *parent) : QGraphicsRectItem(parent)
{
setFlag(QGraphicsItem::ItemSendsGeometryChanges);
}
ItemHandler::~ItemHandler()
{
}
QVariant ItemHandler::itemChange(QGraphicsItem::GraphicsItemChange change,
const QVariant &value)
{
QPointF newPos = value.toPointF();
emit objectHandlePosChanged(newPos);
}
【问题讨论】:
标签: c++ qt signals-slots qgraphicsscene qgraphicsitem