| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #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));
- }
|