我又看了一下文档,说了这么一段奇怪的话:
当我们想让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])'
应该就是不对,那么应该怎么写呢?球大神解答!