<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Qt實(shí)現(xiàn)電子白板,雙圖層,下面顯示視頻幀,上面顯示批注內(nèi)容,支持畫筆,橡皮檫

      原理:

      視頻幀使用QImage顯示,批注內(nèi)容繪制在QPixmap上,QPainter顯示繪制QImage,再繪制QPixmap

       

      #ifndef WIDGET_H
      #define WIDGET_H
      
      #include <QWidget>
      #include <QTimer>
      #include <QDebug>
      #include <QPainter>  // 畫家類
      #include <QPaintEvent>
      #include <QMouseEvent>
      #include <QPoint>
      #include <QPolygon>
      
      enum class HuabiType{Line, Rubber};
      
      
      QT_BEGIN_NAMESPACE
      namespace Ui {
      class Widget;
      }
      QT_END_NAMESPACE
      
      class Widget : public QWidget
      {
          Q_OBJECT
      
      public:
          Widget(QWidget *parent = nullptr);
          ~Widget();
      
          void mousePressEvent(QMouseEvent* e);         // 按下
          void mouseMoveEvent(QMouseEvent* e);          // 移動(dòng)
          void mouseReleaseEvent(QMouseEvent* e);       // 釋放
          void paintEvent(QPaintEvent *);
      
      private:
          Ui::Widget *ui;
          QImage m_img;
          QPixmap m_draw;
      
          HuabiType m_type = HuabiType::Line;
          QList<QPoint> point_list;
      };
      #endif // WIDGET_H
      #include "widget.h"
      #include "ui_widget.h"
      #include <QListView>
      
      Widget::Widget(QWidget *parent)
          : QWidget(parent)
          , ui(new Ui::Widget)
      {
          ui->setupUi(this);
      
          connect(ui->pushButton, &QPushButton::clicked, [=](){m_type = HuabiType::Line;});
          connect(ui->pushButton_2, &QPushButton::clicked, [=](){m_type = HuabiType::Rubber;});
      
          m_img.load("E:1.jpg");
      
          m_draw = QPixmap(800, 600);
          m_draw.fill(Qt::transparent);
      }
      
      Widget::~Widget()
      {
          delete ui;
      }
      
      void Widget::mousePressEvent(QMouseEvent *e)
      {
          point_list.append(e->pos());
      }
      
      void Widget::mouseMoveEvent(QMouseEvent *e)
      {
          point_list.append(e->pos());
          update();
      }
      
      void Widget::mouseReleaseEvent(QMouseEvent *e)
      {
          point_list.append(e->pos());
          update();
          point_list.clear();
      }
      
      void Widget::paintEvent(QPaintEvent *)
      {
          QPainter p(this);
      
          QPen pen(QColor("red"));  // 設(shè)置筆的顏色
          pen.setWidth(3);          // 設(shè)置筆-粗細(xì)
      
          // 繪制視頻幀
          if(!m_img.isNull())
          {
              p.drawImage(ui->widget->geometry(), m_img);
          }
      
          // 繪制批注
          p.drawPixmap(ui->widget->geometry(), m_draw);
      
          // ==========
          QPainter p1(&m_draw);
          p1.setPen(pen);
      
          if(m_type == HuabiType::Line)
          {
              QPolygon pol;
              for(int i=0;i<point_list.count()-1;i++)
              {
                  p1.drawLine(point_list.at(i), point_list.at(i+1));
              }
          }
          else
          {
              p1.setCompositionMode(QPainter::CompositionMode_Clear); // 使用透明繪制模式
              for(QPoint point: point_list)
              {
                  QRect r(point.x() - 10, point.y() - 10, 20, 20);
                  p1.eraseRect(r);
              }
          }
      }

       

      posted @ 2025-01-16 13:20  十一的雜文錄  閱讀(86)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 骚虎三级在线免费播放| 国产精品视频免费一区二区三区 | 亚洲精品美女久久久久9999| 日本午夜精品一区二区三区电影 | 固镇县| 熟女精品国产一区二区三区| 精品国产精品午夜福利| 安泽县| 国产午夜免费高清久久影院| 高清中文字幕一区二区| av综合网男人的天堂| 亚洲高清WWW色好看美女| 日韩欧国产美一区二区在线| 99久久婷婷国产综合精品| 国产情侣激情在线对白| 亚洲国产精品成人综合色| 久久久天堂国产精品女人| 中国熟女仑乱hd| 精品国产片一区二区三区| 成在线人永久免费视频播放| 久久这里只精品热免费99| 亚洲中文字幕精品第三区| 国产婷婷综合在线视频中文| 亚洲 中文 欧美 日韩 在线| 人妻中文字幕不卡精品| 99精品免费久久久久久久久日本 | 激情六月丁香婷婷四房播| 成 人免费va视频| 无码福利写真片视频在线播放 | 国产精品福利自产拍在线观看| 国产成人精品亚洲资源| 久久国产av影片| 日韩国产欧美精品在线| 人妻少妇偷人精品免费看| 国产午夜精品理论大片| 亚洲高请码在线精品av| 亚洲精品一区二区三区片| 成年女性特黄午夜视频免费看| 久久综合给合久久狠狠狠88| 午夜福利一区二区在线看| 国产乱码精品一品二品|