欢迎光临散文网 会员登陆 & 注册

qt 中,如何实现图片展示及旋转矩形操作

2023-02-28 10:51 作者:大衣哥编程  | 我要投稿
  1. 图片加载

    QPixmap pixmap("img2.png");      

     painter.drawPixmap(rect(), pixmap);

  2. 旋转矩形绘制

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);
        
   ③ 计算角度

计算角度可能有问题!

qt 中,如何实现图片展示及旋转矩形操作的评论 (共 条)

分享到微博请遵守国家法律