現時点では、:QObject と :QGraphicsPixmapItem によって派生したものを自分の QGraphicsView から取得しようとしています。そのため、シーンに 2 つのアイテムを追加しましたが、このアイテムを別のメソッドで取得したいのですQList <QGraphicsItem*>
が、残念ながらうまく機能せず、QGraphicsItem::toGraphicsObject()
0 が返されます。
だから私はQt-Reference-Documentationでこの説明を見つけました:
QGraphicsObject * QGraphicsItem::toGraphicsObject ()
Return the graphics item cast to a QGraphicsObject, if the class is actually a
graphics object, 0 otherwise.
私はアイテムをアニメートしたいので、私から取り出したいものitemList
としたいものsetTargetObject
ですmyAnimation
。しかし、このメソッドには が必要なQGraphicsObject
ので、変換する必要があります。私のソースコードがもう少し教えてくれることを願っています:
-- ああ --
class A : public QObject, public QGraphicsPixmapItem
{
Q_OBJECT
Q_PROPERTY (QPointF pos READ pos WRITE setPos)
public:
A()
{
setTransformationMode (Qt::SmoothTransformation);
}
QPointF itemPos;
};
-- A.cpp --
void A::method()
{
QList <QGraphicsItem*> itemList = myGraphicsView -> items();
QGraphicsObject *test = itemList.at (0) -> toGraphicsObject();
qDebug() << test; // <-- QGraphicsObject(0)
myAnimation -> setTargetObject (test);
myAnimation -> setPropertyName ("pos");
myAnimation -> setStartValue (QPointF (0, 100));
myAnimation -> setEndValue (QPointF (60, 100));
myAnimation -> start();
}