Bonjour à tous,

Mon objectif est de me déplacer dans ma vue "view" à la façon Google Map avec la souris, c'est-à-dire que je clique avec le bouton gouche et le déplacement ensuite gère la translation de la vue.

Pour cela j'ai donc surchargé la fonction mouseMoveEvent dans ma classe dérivée de QGraphicsScene. Voici à quoi ressemble le code pour le moment :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void mouseMoveEvent ( QGraphicsSceneMouseEvent * mouseEvent )
        {
            //if(mouseEvent->buttons() == Qt::LeftButton) // Si le clic gauche est enfoncé
            //{
                QGraphicsView *view = (this->views()).takeFirst();
                int dx,dy;
                dx = (int)((mouseEvent->lastScreenPos()).x() - (mouseEvent->screenPos()).x());
                dy = (int)((mouseEvent->lastScreenPos()).y() - (mouseEvent->screenPos()).y());
 
                cout << dx << dy << endl;
 
                view->translate(dx,dy);
            //}
        }
J'ai mis en commentaire le bouton car je veux déjà voir si mon déplacement fonctionne.

Le résultat de cette fonction c'est une vibration de la vue, j'ai des valeurs négatives ou positives de dx ou dy mais la fonction translate n'a pas l'air de fonctionner, la vue tremble c'est tout...
Est-ce que j'applique mal le principe de la fonction translate ?

Merci d'avance