Qt peindre sans effacer l'arrière-plan
-
10-07-2019 - |
Question
J'utilise un QPainter pour obtenir des graphiques sur une fenêtre. Malheureusement, chaque fois que la fonction paintEvent ()
est appelée, la fenêtre entière est effacée. Comment puis-je dessiner sans nettoyer? C'est à dire. comment puis-je laisser intact le contenu de l'événement de peinture précédent?
J'utilise Qt4
La solution
Vous devez définir le backgroundMode
en utilisant le setBackgroundMode
. L’enum Qt :: NoBackground
est ce que vous recherchez.
Autres conseils
Puisque les deux réponses ne concernent que Qt3, voici la solution pour Qt4. Vous devez appeler
setAttribute(Qt::WA_OpaquePaintEvent);
(par exemple dans le constructeur) en suivant la documentation ici .
Dans Qt3, définissez l'indicateur Qt :: WNoAutoErase
à partir de WidgetFlags enum pour éviter que la fenêtre ne soit effacée à chaque événement de peinture.
Vous pouvez définir cet indicateur en le transmettant au constructeur QWidget .