QPropertyAnimation으로 애니메이션하려고하는 QGraphicsScene에 여러 개의 QRect와 일부 텍스트가 있습니다. 텍스트 애니메이션은 잘 작동하지만,이 QGraphicsObject로 변환하는 데 실패하기 때문에 QRects가 작동하지 않습니다QPropertyAnimation을 사용하여 QRect에 애니메이션 적용
이 완벽하게
QPropertyAnimation *a = new QPropertyAnimation(this);
a->setTargetObject(items[size.x()*size.y()-1-aa]->toGraphicsObject()); //text
a->setPropertyName("pos");
a->setDuration(animationLength);
a->setStartValue(items[size.x()*size.y()-1-aa]->pos());
a->setEndValue(newTextPos);
a->setEasingCurve(easingCurve);
a->start(QAbstractAnimation::DeleteWhenStopped);
작동하지만, 이것은하지 않기 때문에 항목 [2 * size.x() * size.y() - 2-aa] -> toGraphicsObject()는 널 포인터를 리턴합니다.
QPropertyAnimation *a = new QPropertyAnimation(this);
a->setTargetObject(items[2*size.x()*size.y()-2-aa]->toGraphicsObject()); //rect
a->setPropertyName("pos");
a->setDuration(animationLength);
a->setStartValue(items[2*size.x()*size.y()-2-aa]->pos());
a->setEndValue(newRectPos);
a->setEasingCurve(easingCurve);
a->start(QAbstractAnimation::DeleteWhenStopped);
해결 방법이 있습니까?
QRect는 그래픽 항목이 아닙니다. QGraphicsRectItem을 의미합니까? –
어쩌면. QGraphicsScene :: addRect를 사용하여 rect를 추가했습니다. – Ben