myview.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "myview.h"
  2. #define VIEW_CENTER viewport()->rect().center()
  3. const double PI = 3.1415926535898;
  4. MyView::MyView(QWidget *parent) :
  5. QGraphicsView(parent),
  6. beishu(1.00000)
  7. {
  8. setDragMode(QGraphicsView::ScrollHandDrag);
  9. }
  10. void MyView::mousePressEvent(QMouseEvent *event)
  11. {
  12. bottonstatus = true;
  13. QGraphicsView::mousePressEvent(event);
  14. }
  15. void MyView::mouseMoveEvent(QMouseEvent *event)
  16. {
  17. QGraphicsView::mouseMoveEvent(event);
  18. }
  19. void MyView::mouseReleaseEvent(QMouseEvent *event)
  20. {
  21. bottonstatus = false;
  22. QGraphicsView::mouseReleaseEvent(event);
  23. }
  24. // 放大/缩小
  25. void MyView::wheelEvent(QWheelEvent *event)
  26. {
  27. // 滚轮的滚动量
  28. QPoint scrollAmount = event->angleDelta();
  29. // 正值表示滚轮远离使用者(放大),负值表示朝向使用者(缩小)
  30. scrollAmount.y() > 0 ? zoomIn() : zoomOut();
  31. }
  32. // 放大
  33. void MyView::zoomIn()
  34. {
  35. scale(1.1, 1.1);
  36. beishu *= 1.1;
  37. centerOn(450, 700 - (200 / beishu));
  38. }
  39. // 缩小
  40. void MyView::zoomOut()
  41. {
  42. scale(1 / 1.1, 1 / 1.1);
  43. beishu /= 1.1;
  44. centerOn(450, 700 - (200 / beishu));
  45. }