gpt4 book ai didi

c++ - 制作 QGraphicsPixmapItem 动画的最简单方法?

转载 作者:太空宇宙 更新时间:2023-11-04 13:22:55 24 4
gpt4 key购买 nike

我想在我的QGraphicsScene中使用QPropertyAnimationQGraphicsPixmapItem设置动画。

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

QPropertyAnimation animation(pixmapItem, "x"); // here lies the problem
animation.setDuration(30000);
// ...
animation.start();

我检查了文档,所以我已经知道 QGraphicsPixmapItem 及其父级 QGraphicsItem 不是 QObject,并且是 QPropertyAnimation 带有 QGraphicsItem 的构造函数不存在。根据各种消息来源,最好的方法是创建一个新类,例如AnimatedGraphicsItem 继承自 QObjectQGraphicsItem 或者我可以简单地继承自 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 对象,然后将 setPixmapsetFlag ……和 addItem 实例化到我的场景中(使用 new 很重要)。

关于c++ - 制作 QGraphicsPixmapItem 动画的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34437873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com