91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

一個簡單的小例子來看一看如何用Qt實現一個簡單的截圖功能,詳情見博客 http://blog.csdn.net/goforwardtostep/article/details/54237689

資源截圖

代碼片段和文件信息

#include?“capturescreen.h“
#include?
#include?
#include?

CaptureScreen::CaptureScreen(QWidget?*parent)
:?QWidget(parent)
?m_currentCaptureState(initCapture)
{
initWindow();
loadBackgroundPixmap();
}

CaptureScreen::~CaptureScreen()
{

}

void?CaptureScreen::initWindow()
{
this->setMouseTracking(true);
//?由于存在類似QQ這樣界面始終顯示在最頂層,設置屬性?Qt::WindowStaysOnTopHint;
this->setWindowFlags(Qt::framelessWindowHint?|?Qt::WindowStaysOnTopHint);
setWindowState(Qt::WindowActive?|?Qt::WindowFullScreen);
this->setMouseTracking(true);
}

void?CaptureScreen::loadBackgroundPixmap()
{
m_loadPixmap?=?QPixmap::grabWindow(QApplication::desktop()->winId());?//抓取當前屏幕的圖片;
m_screenwidth?=?m_loadPixmap.width();
m_screenheight?=?m_loadPixmap.height();
}

void?CaptureScreen::mousePressEvent(QMouseEvent?*event)
{
if?(event->button()?==?Qt::LeftButton?&&?m_currentCaptureState?==?initCapture)
{
m_currentCaptureState?=?beginCaptureImage;
m_beginPoint?=?event->pos();
}
else?if?(event->button()?==?Qt::LeftButton?&&?isPressPointInSelectRect(event->pos()))
{
m_currentCaptureState?=?beginMoveCaptureArea;
setCursor(Qt::SizeAllCursor);
m_beginMovePoint?=?event->pos();
}

return?QWidget::mousePressEvent(event);
}

void?CaptureScreen::mouseMoveEvent(QMouseEvent*?event)
{
if?(m_currentCaptureState?==?beginCaptureImage)
{
m_endPoint?=?event->pos();
update();
}
else?if?(m_currentCaptureState?==?beginMoveCaptureArea)
{
m_endMovePoint?=?event->pos();
update();
}

//?根據鼠標是否在選中區域內設置鼠標樣式;
if?(isPressPointInSelectRect(event->pos()))
{
setCursor(Qt::SizeAllCursor);
}
else?if?(!isPressPointInSelectRect(event->pos())?&&?m_currentCaptureState?!=?beginMoveCaptureArea)
{
setCursor(Qt::ArrowCursor);
}

return?QWidget::mouseMoveEvent(event);
}

void?CaptureScreen::mouseReleaseEvent(QMouseEvent?*event)
{
if?(m_currentCaptureState?==?beginCaptureImage)
{
m_currentCaptureState?=?finishCaptureImage;
m_endPoint?=?event->pos();
update();
}
else?if?(m_currentCaptureState?==?beginMoveCaptureArea)
{
m_currentCaptureState?=?finishMoveCaptureArea;
m_endMovePoint?=?event->pos();
update();
}
return?QWidget::mouseReleaseEvent(event);
}

//?當前鼠標坐標是否在選取的矩形區域內;
bool?CaptureScreen::isPressPointInSelectRect(QPoint?mousePressPoint)
{
QRect?selectRect?=?getRect(m_beginPoint?m_endPoint);
if?(selectRect.contains(mousePressPoint))
{
return?true;
}

return?false;
}

void?CaptureScreen::paintEvent(QPaintEvent?*event)
{
m_painter.begin(this);??????????//進行重繪;

QColor?shadowColor?=?QColor(0?0?0?100);??????????????????????//陰影顏色設置;
m_painter.setPen(QPen(Qt::blue?1?Qt::SolidLine?Qt::FlatCap));????//設置畫筆;
m_painter.drawPixmap(0?0?m_loadPixmap);???????????????????????//將背景圖片畫到窗體上;
m_painter.fillRect(m_loadPixmap.rect()?shadowColor);???????????//畫影罩效果;

switch?(m_currentCaptureState)
{

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6446??2017-01-09?13:33??Qt?之?實現簡單截圖功能(二)\capturescreen.cpp

?????文件???????1342??2017-01-09?13:47??Qt?之?實現簡單截圖功能(二)\capturescreen.h

?????目錄??????????0??2017-01-09?13:48??Qt?之?實現簡單截圖功能(二)

-----------?---------??----------?-----??----

?????????????????7788????????????????????3


評論

共有 條評論