Je ne suis pas certain de ce que c'est que Sauvette l'image est-elle en train de dessiner ou est-ce juste une économie d'informations comme qpainter code> est quand j'invoque enregistrer () code> et restaurer () code>. p>.
PenWidth code> et couleur code> etc.?
Puis-je l'utiliser pour restaurer l'image d'un précédent événement de peinture? P>
3 Réponses :
de La documentation : p>
Vous pouvez à tout moment enregistrer l'état de QPainter en appelant la fonction Enregistrer () qui enregistre tous les paramètres disponibles sur une pile interne. La fonction restaurer () les apparaît. P> blockQuote>
Tous ces paramètres sont répertoriés au lien donné. Donc, il ne fait que sauver les paramètres de peinture et rien qui est réellement peint. P>
Pour élaborer, cela vous permet de faire des choses comme, par exemple: vous configurez un stylo, faites du dessin, de la sauvegarde, de la sauvegarde, de changer le stylo, de faire du dessin, de restaurer, de faire un peu plus de dessin avec le stylo d'origine.
Le lien est mort, vous pourriez peut-être inclure la liste dans la réponse?
Si on utilise beaucoup d'économie / restauration, il est agréable d'avoir une petite classe Raii ("Paintersaver") pour vous assurer que chaque sauvegarde () (fait dans la CTOR) a un appel de restauration () correspondant (fait dans le DTOR ), sinon on peut courir dans des erreurs méchantes "sauvegarde déséquilibrée / restaurer". p>
(Voir QMutexLocker pour le même concept)
Nous avons obtenu qsignalBlocker code>. Je me demande vraiment pourquoi nous n'avons jamais eu de qpainerstaTerserer code>?
Comme vous changez probablement la couleur et le style ou tout autre paramètre de la peinture, vous souhaitez généralement quitter votre fonction de peinture avec les mêmes paramètres qu'il avait lorsqu'il est arrivé. Par conséquent, vous utilisez qpainter :: sauvegarde () code> avant une modification des paramètres du peintre et qpaintter :: restaurer () code> Une fois que vous avez terminé avec vos paramètres modifiés, par exemple peintre-> sauvegarder () code> met l'état du peintre sur une pile, peintre-> restaurer () code> tire l'état de la pile et modifie les paramètres pour correspondre à cela. p> p>