2 fyzdmmcpp FYZDMMCpp 于 2013.12.13 17:22 提问

Qt中QPropertyAnimation如何使QGraphicsItem动起来(Qt动画的问题)?

我又看了一下文档,说了这么一段奇怪的话:

当我们想让QGraphicsItems进行动画,并且使用QPropertyAnimation类。但是,QGraphicsItem没有从 QObject继承。一个好的解决方案是子类话你想要动画的图形项。而且本类也继承自QObject。QPropertyAnimation能被使用在 QGraphicsItems中。以下示例显示了怎么去做。另一个可能是去继承QGraphicsWidget,QGraphicsWidget是一个 QObject。

class Pixmap : public QObject, public QGraphicsPixmapItem
{
Q_OBJECT
Q_PROERTY(QPointF pos READ pos WRITE setPos)
……

正如前所述,我们要定义的属性是要进行动画的属性。

这个子类究竟要怎么定义怎么用呢?尝试了一下不对,百思不得其解……参考文档,我是这么改的:

QGraphicsItem *background=scene->addPixmap(QPixmap(XXXXX));
QPropertyAnimation *animation = new QPropertyAnimation(background, "geometry");

然后报错E:\QT\QT5.1A\Tools\QtCreator\bin\my\widget.cpp:47: 错误:no matching function for call to 'QPropertyAnimation::QPropertyAnimation(QGraphicsItem*&, const char [9])'

应该就是不对,那么应该怎么写呢?球大神解答!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!