[Qt-interest] Strange QGraphicsItemAnimation behavior
Jason H
scorp1us at yahoo.com
Wed Jan 6 04:21:49 CET 2010
Well, you shouldn't move your item position. You need to set the scale, but use a transform that is translated by (-dx/2,-dy/2) then scaled then translated back.
In the new QGVA stuff, it is called transformOrigin()
----- Original Message ----
From: Thomas Fjellstrom <tfjellstrom at shaw.ca>
To: Jason H <scorp1us at yahoo.com>
Cc: Qt Devel <qt-interest at trolltech.com>
Sent: Mon, January 4, 2010 10:57:44 AM
Subject: Re: [Qt-interest] Strange QGraphicsItemAnimation behavior
On Mon January 4 2010, you wrote:
> I think you should use the new animation API.
I am planning on upgrading to Qt 4.6, but not right away. Probably when it
makes it into Debian Sid's repo.
> Using all those timelines
> sets up multiple timers. You need to use a singleton timer technique so
> there is only one timer driving all the events.
>
That would result in the same problem I'm seeing now. One timer seems to
effect the rest for no good reason I can think of. I want items to keep
animating till they stop, not jitter around when others are running.
>
> ----- Original Message ----
> From: Thomas Fjellstrom <tfjellstrom at shaw.ca>
> To: Qt Devel <qt-interest at trolltech.com>
> Sent: Sun, January 3, 2010 11:58:27 PM
> Subject: [Qt-interest] Strange QGraphicsItemAnimation behavior
>
> I'm having a small problem with multiple QGraphicsItemAnimation's and
> their assigned QTimeLine objects being affected by other running
> QTimeLines.
>
> Basically, I have a GameBoard (QGraphicsWidget sub) class that is filled
> with many GameBoardSquare (QGraphicsWidget sub) classes (laid out in a
> QGraphicsGridLayout), and each GameBoardSquare animates as the mouse
> enters, and leaves the square. What I've found happens, is that when
> multiple QGraphicsItemAnimations (with their respective QTimeLine) are
> running, they are effected by other running animations for some reason.
>
> I know the code I've attached isn't all that pretty, and the animation
> handling isn't quite correct, but it aught to work. Mousing over an item,
> without having been over another item for a long enough period as to wait
> out any running animations, and the animation plays correctly. Mouse over
> an item directly from another, or while another is animating, and you'll
> see the item you have the mouse over jitter, or change its position
> incorrectly while its animating, and most of the time, the final
> position is wrong as well.
>
> I'm using Qt 4.5.3 on debian linux.
>
--
Thomas Fjellstrom
tfjellstrom at shaw.ca
More information about the Qt-interest-old
mailing list