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
)