Bonsoir !
Je rencontre des problèmes d'artefacts assez gênants sur mon projet perso (Qt 5.1.0).
Je souhaite rendre un QWidget, quel qu'il soit, dans un QGraphicsItem.
Voici la fonction paint de ma classe dérivée de QGraphicsItem :
Ma classe dérivée de QGraphicsView contient cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Q_UNUSED(option); Q_UNUSED(widget); painter->drawPixmap(this->outlineRect().center(), myWidget->grab());
J'attache un screen au topic : un des "pires" cas. Le widget rendu est un QPushButton. A noter que ces "traces" sont un peu aléatoires, elles peuvent apparaitre lorsque je me déplace dans la vue, ou lorsque je déplace l'item.setRenderHint(QPainter::Antialiasing);
Un zoom ou dé-zoom efface les traces.
Quelqu'un a-t-il déjà eu un problèle similaire ?
Que me proposez-vous pour tenter d'éliminer ces artefacts qui gâchent le rendu ?
Merci à tous
EDIT : ah quelle truffe...le rectangle extérieur n'était tout simplement pas à la taille du QWidget, entraînant les artefacts...
J'ai simplement utilisé "myWidget->render(painter);" dans ma méthode paint().
Je laisse ça pour si jamais quelqu'un d'autre est dans le même cas que moi, libre à un modo de supprimer le topic.
Partager