J'ai un QGraphicsScene
comme scène principale avec plusieurs QGraphicsItem
mobiles dans celui-ci et un autre QGraphicsScene
sur le dessus de la scène principale comme une superposition. La scène de superposition est exactement de la même taille que l'affichage de l'utilisateur, tandis que la scène principale est beaucoup plus grande, il faut donc la faire défiler automatiquement vers le haut et vers le bas.Comment déplacer un QGraphicsItem sur une autre scène sans perdre le grappin de la souris?
Si un élément de la scène principale va être déplacé, je veux supprimer cet élément de la scène principale et l'ajouter à la scène de superposition, laisser l'utilisateur déplacer l'élément dans la scène de superposition, et dès que la souris est relâchée la remettre sur la scène principale. Cela me permet de faire défiler automatiquement la scène principale lorsque l'objet s'approche des bords de l'écran.
Le problème est le suivant; Lorsqu'un élément est retiré de sa scène, il reçoit un événement QMouseUngrab
, il n'est donc pas possible de continuer à déplacer l'élément sans le cliquer de nouveau dans la scène de superposition. J'ai essayé d'empêcher l'événement ungrab ou de générer un faux QMousePress
dans le overlayscene, mais aucun d'eux n'a résolu le problème.
Avez-vous une idée de comment je peux commencer à déplacer un objet dans une scène et continuer à le déplacer dans une autre scène sans interruption?
En d'autres termes:
QMousePress
arrive dans la principale scène- Plusieurs
QMouseMove
s et enfin unQMouseRelease
devrait se produire dans la scène de superposition - Juste après
QMouseRelease
l'article sera remis à la scène principale