HI!

I want to move a scene with mouse (left mouse button with CTRL). I use this code:

Qt Code:
  1. void GraphicsView::mousePressEvent (QMouseEvent *event)
  2. {
  3. if (event->button () == Qt::LeftButton && event->modifiers ().testFlag (Qt::ControlModifier))
  4. {
  5. setDragMode (QGraphicsView::ScrollHandDrag);
  6. setInteractive (false);
  7.  
  8. _originX = event->x ();
  9. _originY = event->y ();
  10. }
  11. else
  12. {
  13. QGraphicsView::mousePressEvent (event);
  14. }
  15. }
  16.  
  17. void GraphicsView::mouseMoveEvent (QMouseEvent *event)
  18. {
  19. if (event->buttons () & Qt::LeftButton && event->modifiers ().testFlag (Qt::ControlModifier))
  20. {
  21. QPointF oldp = mapToScene (_originX, _originY);
  22. QPointF newp = mapToScene (event->pos ());
  23. QPointF translation = newp - oldp;
  24.  
  25. translate (translation.x (), translation.y ());
  26.  
  27. _originX = event->x ();
  28. _originY = event->y ();
  29. return;
  30. }
  31.  
  32. QGraphicsView::mouseMoveEvent (event);
  33. }
  34.  
  35. void GraphicsView::mouseReleaseEvent (QMouseEvent *event)
  36. {
  37. if (event->button () == Qt::LeftButton && event->modifiers ().testFlag (Qt::ControlModifier))
  38. {
  39. setDragMode (QGraphicsView::NoDrag);
  40. setInteractive (true);
  41. }
  42. else
  43. {
  44. QGraphicsView::mouseReleaseEvent (event);
  45. }
  46. }
To copy to clipboard, switch view to plain text mode 

And this code is not work.