需求
- 实现框选放大
- 实现鼠标中键放大
实现
- 首先需要实现窗口坐标到图像坐标的转换
- 图像X=窗口坐标X / 窗口宽度 * 图像宽度
- 图像Y=窗口坐标Y / 窗体高度 * 图像高度
- 框选实现
- 使用QRubberBand类
- 鼠标中键
重新实现wheelEvent函数
void wheelEvent(QWheelEvent* event);
- 渲染
通过之前框选、窗口坐标转换图像坐标,获取到图像需要显示的实际区域,之后渲染
...
painter->drawImage(renderRect, image, imgRect);
...