Wednesday, April 8, 2009

Qt Animation framework

I've been working recently with Qt Animation Framework, trying to learn how to utilize it efficiently. Below is a video showing circular carousel widget which uses the animation framework.

video

I need to still continue experimenting how to really extend the animation classes and use the whole state machine framework, but so far I'm impressed by the latest 2.2 API version. Originally my biggest concern about this whole "Kinetic" was that it would be too high-level and have suboptimal performance in embedded devices, but luckily that doesn't seem to be the case. Now with Qt 4.5, QGraphicsView starts to be very usable also in N810 and one just needs to know tips & tricks how to utilize it efficiently. Below is the same carousel widget in N810, using the "raster" graphics backend:

video

FPS up there means how many times QGraphicsView paintEvent() is called, so it drops when more drawing to view is needed, but stays quite healthy & usable anyway. Back to coding!

Special thanks for graphics used goes to:
- Background: Tribe, by Alexander Timonov
- Icons: Kreski-Lines, by Holger Bauer

10 comments:

jeez said...

Nice demos!
It would be nice to see a post about these "tips & tricks" that you mentioned... ;)

timsamoff said...

Cool! http://circledock.wikidot.com/ is one of my favorite Windows apps. I'd love to see something like it on the tablets.

Kaitsu said...

@jeez: I'll try to write a separate post about those, mostly it's about using what QGraphics* provides and avoid stupid things... ;-) BTW, your kinetic layout stuff looks very good!

@tim: Thanks for the link, Circledock-type of UI would indeed work quite nicely in tablets & touch!

Perna said...

Really cool..what about the code?!! is it available somewhere? :-)

BR
--romelo

jeez said...

@kaitsu: ok, I'll wait then... ;)
yes, animated layout is becoming really cool! I'll make a post as soon as this kinetic branch becomes public somewhere.

Jayesh said...

Gr8 demo. Looking forward to using it.

Kaitsu said...

Thanks everyone for comments, very inspiring! @romelo: Sources are not available now, I'll try to get some of these wide open in future!

aviral said...

Yipee cool i am also trying out Qt Anim Frmwk 2.3 and am really excited to see some of ur stuff ll soon let u know of my findings

Randall "Texrat" Arnold said...

Absolutely amazing. What's really cool is that I had a vague idea in my head a while back of how I'd like to see a tablet UI work, and you've managed to pull it off! Nice.

Now, take it one step further-- allow your "satellites" to support a hierarchal structure, so that each satellite may in turn have its own satellites. You could open one or expand it to reveal its sub-satellites depending on click context (one tap, 2? short vs long?). Even better, allow satellites to be torn off temporarily.

I see potential for much cool stuff here!

1 said...

That's amazing. I tried to compile kinetic + Qt Animation Framework successfully. I'm very interested in knowing how did you use QGraphicsView for this high performance result on a embedded system. Waiting for your hints