First, I'm not an expert, YMMV. I think it depends on what you are doing. If you are constructing images off-screen and then copying them to your display device, or going directly to display device would change the answer. Have a look at these classes though, they're all related:
QImage
QPixmap
QPicture
Of these, QImage and QPixmap are more direct pixel drawing classes. QPicture is interesting, it replays painter commands...if you know what an OpenGL display list is, it's similar. A QPicture might be useful for a kind of scene graph.
To quote the manual data:
QPixmap is designed and optimized for drawing on screen; QImage is designed for I/O and for direct pixel access; QPicture provides a scalable, vectorial picture
So if you have a complex set of manipulations at the pixel level, you might go with QImage, and then copy the end result to a QPixmap. If you plan to render to the screen without a lot of data transfer, you might go for a QPixmap directly. If you have a series of repeatable geometries that need to be placed in a scene, you might use the QPicture. Combinations might also make sense.
I've found the non-OpenGL stuff though to be slow...if speed is required you might switch to the GL widget and render with OpenGL. For me the OpenGL is at least two to three orders of magnitude faster even in 2D, and I just have a cheap/low-end NVidia card (though admittedly even a low end NVidia is a fast video card).
-- "Quality is free", quoted from Dr. W. E. Deming