• 大小: 46KB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签: ubuntu  

资源简介

很好的ubuntu opencv qt 三位一体的摄像头源码,有很强的实用性,请下载参考

资源截图

代码片段和文件信息

#include “fullScreenWidget.h“
fullScreenWidget::fullScreenWidget()
{
  setWindowState(Qt::WindowActive|Qt::WindowFullScreen);
  tipWidth = 300; //温馨提示框的宽度
  tipHeight = 100; //温馨提示框的高度
  infoWidth = 100; //坐标信息框的宽度
  infoHeight = 50; //坐标信息框的高度
  initFullScreenWidget();
}

void fullScreenWidget::initSelectedMenu()
{
  savePixmapAction = new QAction(tr(“保存选区“)this);
  cancelAction = new QAction(tr(“重选“)this);
  quitAction = new QAction(tr(“退出“)this);
  contextMenu = new QMenu(this);

  connect(savePixmapActionSIGNAL(triggered())thisSLOT(savePixmap()));
  connect(cancelActionSIGNAL(triggered())thisSLOT(cancelSelectedRect()));
  connect(quitActionSIGNAL(triggered())thisSLOT(hide()));
}

void fullScreenWidget::savePixmap()
{
  QString fileName;
  fileName = QFileDialog::getSaveFileName(thistr(“保存图片“)QDir::currentPath()tr(“Images (*.jpg *.png *.bmp)“));
  if(fileName.isNull())
    return;
  
  shotPixmap.save(fileName);
  hide();
}

void fullScreenWidget::loadBackgroundPixmap(const QPixmap &bgPixmap)
{
  int widthheight;
  width = QApplication::desktop()->size().width();
  height = QApplication::desktop()->size().height();

  loadBackgroundPixmap(bgPixmap00widthheight);
}

void fullScreenWidget::loadBackgroundPixmap(const QPixmap &bgPixmap int x int y int width int height)
{
  loadPixmap = bgPixmap;
  screenx = x;
  screeny = y;
  screenwidth = width;
  screenheight = height;
  initFullScreenWidget();
}

QPixmap fullScreenWidget::getFullScreenPixmap()
{
  initFullScreenWidget();
  QPixmap result = QPixmap();
  result = QPixmap::grabWindow(QApplication::desktop()->winId()); //抓取当前屏幕的图片
  
  return result;
}

void fullScreenWidget::paintEvent(QPaintEvent *event)
{
  QColor shadowColor;
  shadowColor= QColor(000100); //阴影颜色设置
  painter.begin(this); //进行重绘

  painter.setPen(QPen(Qt::blue2Qt::SolidLineQt::FlatCap));//设置画笔
  painter.drawPixmap(screenxscreenyloadPixmap); //将背景图片画到窗体上
  painter.fillRect(screenxscreenyscreenwidthscreenheightshadowColor); //画影罩效果

  switch(currentShotState){
    case initShot:
      drawTipsText();
      break;
    case beginShot:
    case finishShot:
      selectedRect = getRect(beginPointendPoint); //获取选区
      drawSelectedPixmap();
      break;
    case beginMoveShot:
    case finishMoveShot:
      selectedRect = getMoveAllSelectedRect(); //获取选区
      drawSelectedPixmap();
      break;
    case beginControl:
    case finishControl:
      selectedRect = getMoveControlSelectedRect();
      drawSelectedPixmap();
      break;
    default:
      break;
  }  
  drawXYWHInfo(); //打印坐标信息
  painter.end();  //重绘结束
  
  if(currentShotState == finishMoveShot || currentShotState == finishControl){
    updateBeginEndPointValue(selectedRect); //当移动完选区后,更新beginPointendPoint;为下一次移动做准备工作
  }

}

void fullScreenWidget::keyPressEvent(QKeyEvent *event)
{
  if(event->key() == Qt::Key_Escape){
    initFullScreenWidget();
    hide();
  }
}

void fullScreenWidget::mousePressEvent(QMouseEvent *event)
{
  //当开始进行拖

评论

共有 条评论