C++ 设置QGraphicsPixmapItem动画的最简单方法?

C++ 设置QGraphicsPixmapItem动画的最简单方法?,c++,qt,qgraphicsitem,qpropertyanimation,C++,Qt,Qgraphicsitem,Qpropertyanimation,我想用QPropertyAnimation在我的qgraphicscene中设置一个QGraphicsPixmapItem动画 QPixmap pixmap(filePath); QGraphicsItem *pixmapItem = graphicsScene->addPixmap(pixmap); QPropertyAnimation animation(pixmapItem, "x"); // here lies the problem animation.setDuration(

我想用
QPropertyAnimation
在我的
qgraphicscene
中设置一个
QGraphicsPixmapItem
动画

QPixmap pixmap(filePath);
QGraphicsItem *pixmapItem = graphicsScene->addPixmap(pixmap);

QPropertyAnimation animation(pixmapItem, "x"); // here lies the problem
animation.setDuration(30000);
// ...
animation.start();
我检查了文档,因此我已经知道
QGraphicsPixmapItem
及其父
QGraphicsItem
没有
QObject
,并且不存在带有
QGraphicsItem
QPropertyAnimation
构造函数。根据各种来源,最好的方法是创建一个新类,例如,
AnimatedGraphicsItem
,它继承自
QObject
QGraphicsItem
,或者我可以简单地继承自
QGraphicsObject

class AnimatedGraphicsItem : public QObject, public QGraphicsItem // or public QGraphicsObject
{
    Q_OBJECT
    Q_INTERFACES(QGraphicsItem) // not needed if I inherit from QGraphicsObject, right?
};
我的
AnimatedGraphicsItem
类的头文件和源文件中需要包含哪些内容?一位消息来源告诉我也要将其包含在头文件中,但我想,这已经被继承了吗

public:
    AnimatedGraphicsItem(QGraphicsItem *parent = 0);

private:
     virtual QRectF boundingRect() const;
     virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
我必须如何使用我的
AnimatedGraphicsItem

我是否必须将我的
QGraphicsItem*pixmapItem
转换为
AnimatedGraphicsItem
?(如果是,如何创建?)是否必须创建
AnimatedGraphicsItem
的新实例

我在网上没有找到一个好的例子

提前谢谢

好的,明白了

我必须实例化我的
AnimatedGraphicsItem
对象,然后将
setPixmap
setFlag
,…和
addItem
添加到我的场景中(使用
new
非常重要)。

好的,明白了

我必须实例化我的
AnimatedGraphicsItem
对象,然后将
setPixmap
setFlag
,…和
addItem
添加到我的场景中(重要的是使用
new