#include "myview.h" #define VIEW_CENTER viewport()->rect().center() const double PI = 3.1415926535898; MyView::MyView(QWidget *parent) : QGraphicsView(parent), beishu(1.00000) { setDragMode(QGraphicsView::ScrollHandDrag); } void MyView::mousePressEvent(QMouseEvent *event) { bottonstatus = true; QGraphicsView::mousePressEvent(event); } void MyView::mouseMoveEvent(QMouseEvent *event) { QGraphicsView::mouseMoveEvent(event); } void MyView::mouseReleaseEvent(QMouseEvent *event) { bottonstatus = false; QGraphicsView::mouseReleaseEvent(event); } // 放大/缩小 void MyView::wheelEvent(QWheelEvent *event) { // 滚轮的滚动量 QPoint scrollAmount = event->angleDelta(); // 正值表示滚轮远离使用者(放大),负值表示朝向使用者(缩小) scrollAmount.y() > 0 ? zoomIn() : zoomOut(); } // 放大 void MyView::zoomIn() { scale(1.1, 1.1); beishu *= 1.1; centerOn(450, 700 - (200 / beishu)); } // 缩小 void MyView::zoomOut() { scale(1 / 1.1, 1 / 1.1); beishu /= 1.1; centerOn(450, 700 - (200 / beishu)); }