Bonjour,
je possède une vue transparente définie dans une fenêtre principale sans volontairement lui passer de parent (mais là n'est pas le problème) :
Ma vue se construit de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 _vue = new Vue(); _vue->setGeometry(0, 0, 1657, 981); _vue->setVisible(true); _vue->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); _vue->show();
* Dedans, je dessine des figures en cliquant mais alors des barres apparaissent sur la vue comme une sorte de délimitation alors que ma vue a une taille qui fait tout l'espace gris (et la scène est illimitée par défaut) (image 1). Dés que je sors de ce cadre, la polyline ne se poursuit plus et est coupée puis, si je repasse dedans, ça trace le bout de ligne qui se trouve dedans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Vue::Vue(QWidget* parent) : QGraphicsView(parent){ _scene = new Scene(this); setScene(_scene); setMouseTracking(true); setAttribute(Qt::WA_TranslucentBackground); setStyleSheet("background : transparent"); }
* Si je clic ensuite en dehors de mon application, les coupures disparaissent (image 2)(se serait donc une mise à jour à faire sur la vue non ? ça ressemble au prepareGeometryChange on dirait). Mais les barres verticales persistent.
Edit : Pour ce point, c'est en fait un update sur la scène qui manque.
* Si je scroll alors un peu ma vue, les barres disparaissent et reprennent seulement aux prochains clics (image 3).
Une idée sur ces comportements ?
Apparemment, mon problème se situerait dans la réimplémentation de drawBackground de ma vue dans laquelle je fais un "drawRect(rect)". Le rect ne correspond pas à sceneRect. Si je fixe sceneRect, plus aucun problème. Mais si je veux que ma scène soit illimitée et donc que je n'ai pas de sceneRect ? :S
Merci beaucoup![]()
Partager