Seite 1 von 1

QPropertyAnimation mit QGraphicsItem und QTransform

Verfasst: 31. Juli 2012 10:30
von 'Prest1ge.
Hallo Community.

Ich versuche derzeit ein QGraphicsItem in meinem QGraphicsView auf dessen Qt::YAxis zu drehen.
Ich kann zwar folgenden code kompilieren, jedoch geschieht einfach nichts sobald ich die entsprechende Funktion (functionBla()) abrufe.

--A.h--

Code: Alles auswählen

class myOwnPixmapItem : public QObject, public QGraphicsPixmapItem
{
	Q_OBJECT
	Q_PROPERTY (QTransform transform READ transform WRITE setTransform)

public:
	myOwnPixmapItem();
	myOwnPixmapItem *myGraphicsItem;

	functionBla();
};
--A.cpp--

Code: Alles auswählen

myOwnPixmapItem::myOwnPixmapItem()
{
	myGraphicsItem = new myOwnPixmapItem;
}

myOwnPixmapItem::functionBla()
{
	QTransform trans;
	trans.rotate (0, Qt::YAxis);

	QPropertyAnimation* animation = new QPropertyAnimation (myGraphicsItem, "transform");
	animation->setDuration(1400);
	animation->setStartValue(trans);

	trans.rotate (60, Qt::YAxis);
	animation->setEndValue(trans);
	animation->start();
}

Re: QPropertyAnimation mit QGraphicsItem und QTransform

Verfasst: 31. Juli 2012 12:59
von franzf
Lass mich raten: Du erzeugst dann irgendwo eine neue Instanz deiner Klasse, fügst diese Instanz dann in eine Scene ein und rufst irgendwann functionBla() auf, korrekt?
Dann kannst du dir mal kurz überlegen, ob die Instanz die in der scene sichtbar ist und diejenige, welche animiert werden soll, die selben sind. Und wenn du das weißt, überleg dir ob dein Ansatz überhaupt Sinn macht, wo das Problem an deiner Lösung ist und ob es irgendwie besser (richtiger) geht ;)

Re: QPropertyAnimation mit QGraphicsItem und QTransform

Verfasst: 31. Juli 2012 14:44
von 'Prest1ge.
franzf hat geschrieben:Lass mich raten: Du erzeugst dann irgendwo eine neue Instanz deiner Klasse, fügst diese Instanz dann in eine Scene ein und rufst irgendwann functionBla() auf, korrekt?
Da muss ich dich enttäuschen franzf. Bis auf das eine Item das ich in meinem Beispielcode gepostet habe existiert meine Klasse sowie meine scene bereits. :roll:

Re: QPropertyAnimation mit QGraphicsItem und QTransform

Verfasst: 31. Juli 2012 16:16
von franzf
Bis auf das eine Item das ich in meinem Beispielcode gepostet habe existiert meine Klasse sowie meine scene bereits.
Für mich ergibt der Satz leider keinen Sinn, vor allem im Kontext.
Poste doch mal bitte, wie du es verwendest. Und wenn der obige Code nicht dem Originalen entspricht bitte auch den nachreichen.

Re: QPropertyAnimation mit QGraphicsItem und QTransform

Verfasst: 31. Juli 2012 18:16
von Christian81
Für QTransform gibt es keine Animation per default. Die muss man schon selbst schreiben. Siehe z.B. hier: http://qt-project.org/doc/qt-4.8/qvaria ... ml#details