A lire (pas très attentivement je le confesse :oops: ) ton code, il me semble que ton problème est bel et bien dans le *je* de "je dessine".
Si je comprends bien tu ne dessines pas mais chaque composant réagit à un paintEvent et se redessine à ce moment. Le problème est que tu n'es pas maître que l'ordre dans lequel QT envoie les événements. Je ne pense pas que l'on puisse avoir la maîtrise là-dessus. Je dirais même au contraire (si je me rappelle un bout de doc de Qt que j'ai lu il y a longtemps) Pour résoudre le problème Il me semble que tu dois (par exemple) capturer les mouvements de la souris en amont,, c'est à dire au dessus de la fenêtre sans te soucier des widgets et à chaque déplacement tu dois appeler les méthodes drawShape de tes composants (dans un sandwich QtGui.QPainter(), etc ce la va de soit) . Comme ça tu pourras les dessiner comme tu voudras, surtout si tu maintiens une liste dans laquelle ils seront classés selon leur z-order.
A lire (pas très attentivement je le confesse :oops: ) ton code, il me semble que ton problème est bel et bien dans le *je* de "je dessine".
Si je comprends bien tu ne dessines pas mais chaque composant réagit à un paintEvent et se redessine à ce moment. Le problème est que tu n'es pas maître que l'ordre dans lequel QT envoie les événements. Je ne pense pas que l'on puisse avoir la maîtrise là-dessus. Je dirais même au contraire (si je me rappelle un bout de doc de Qt que j'ai lu il y a longtemps) Pour résoudre le problème Il me semble que tu dois (par exemple) capturer les mouvements de la souris en amont,, c'est à dire au dessus de la fenêtre sans te soucier des widgets et à chaque déplacement tu dois appeler les méthodes drawShape de tes composants (dans un sandwich QtGui.QPainter(), etc ce la va de soit) . Comme ça tu pourras les dessiner comme tu voudras, surtout si tu maintiens une liste dans laquelle ils seront classés selon leur z-order.