la classe QImage est optimisée pour les entrees/sorties, les manipulations sur les images (transformation, changement d'échelle, changement de la profondeur de coueleurs...). tu peux aussi charger et enregistrer dans plusieurs formats, et créer tes propres classes de chargement/sauvegarde.
La classe QPixmap est optimisée pour l'affichage. pour l'affichage d'un QPixmap, tu peux soit utiliser les methodes drawPixmap ou drawTiledPixmap de QPainter.
une utilisation courante des QPixmap est pour le double buffering avec bitBlt ().
Il y a des opérations de conversion QPixmap<->QImage, mais elles sont assez lourdes.
D'ailleurs, tu peux dessiner des QImage avec un QPainter (drawImage) mais une conversion est faite. si tu veux afficher une QImage, converti la au départ en QPixmap.