O'Reilly logo

Programming with Qt, 2nd Edition by Matthias Kalle Dalheimer

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 9. Graphics

Naturally, GUI programs contain a large amount of graphics code. By graphics code, we mean low-level graphics drawing code used to create things that go beyond the built-in widgets.

You already know a bit about graphics programming from the tutorial, but there is a lot more to doing it in Qt. In this chapter, you will find sections on animation, printing, basic drawing operations, and advanced drawing with two-dimensional transformations and different coordinate systems. Not all of this will be interesting to you at this time, so read intensively about what you need for your current development project and just skim the remaining sections.

Animations

Qt contains a nice little class called QMovie that allows programmers to include small animations in their work with a minimum of fuss.

An animation consists of several pictures, or frames, that are shown in rapid succession. You could simply load the frames into QPixmap objects and show them one after the other, but QMovie does that for you.

While QMovie is designed to be independent from the animation format, it is currently only possible to use animated GIF (if Qt is compiled with GIF support) and MNG (if Qt is compiled with MNG support).[22] You can’t load another animation format like AVI or FLI frame by frame and add these frames to a QMovie object. If you want to play these formats, you can still use QMovie, but you need to write the decoding code yourself. How to do this is beyond the scope of ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required