一 QT 鼠标事件处理
1.1 重载鼠标事件函数
QT 中,处理鼠标事件,要重载几个函数
virtual void wheelEvent(QWheelEvent *event) override;
virtual void mousePressEvent(QMouseEvent *event) override;
virtual void mouseReleaseEvent(QMouseEvent *event) override; //鼠标弹起
virtual void mouseMoveEvent(QMouseEvent *event) override;
1.2 坐标变换
event->x(),event->y() 是当前鼠标的位置,但是此位置是以widget窗口左上角为原点的,
1.2.1将坐标转换为画布坐标系
以画布左上角为原点
画布左侧距离为 main->previewX
画布顶端距离为 main->previewY
所以,转换关系如下:
//转画布坐标系
QPoint pt(event->x() - main->previewX, event->y() - main->previewY);