qt 中,如何实现图片展示及旋转矩形操作
图片加载
QPixmap pixmap("img2.png");
painter.drawPixmap(rect(), pixmap);
旋转矩形绘制

3.实现鼠标事件响应
void mousePressEvent(QMouseEvent *event) override { if (event->button() == Qt::LeftButton && isPointInOuterCircle(event->pos())) { isRotating = true; prevPos = event->pos(); this->setCursor(Qt::CrossCursor); } }
void mouseReleaseEvent(QMouseEvent *event) override { if (event->button() == Qt::LeftButton) { isRotating = false; this->setCursor(Qt::ArrowCursor); } }
void mouseMoveEvent(QMouseEvent *event) override { if(isPointInOuterCircle(event->pos())) { this->setCursor(Qt::CrossCursor); } if (isRotating) { QPoint delta = event->pos() - prevPos; angle += delta.x(); if (angle < 0) { angle += 360; } else if (angle >= 360) { //angle -= 360; } prevPos = event->pos(); update(); } }
注意:① 构造函数设置鼠标跟踪:this->setMouseTracking(true);
② 设置光标 this->setCursor(Qt::ArrowCursor);
③ 计算角度

计算角度可能有问题!