资源简介
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)
{
//当开始进行拖动进行选择区域时
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-10-18 23:40 screenShot\
文件 1093 2020-10-11 15:41 screenShot\.qmake.stash
文件 34721 2020-10-11 15:41 screenShot\Makefile
文件 142174 2020-10-11 15:41 screenShot\Makefile.Debug
文件 142302 2020-10-11 15:41 screenShot\Makefile.Release
文件 14426 2020-10-18 23:36 screenShot\cncT.pro.user
文件 26550 2020-10-11 15:39 screenShot\cncT.pro.user.12
文件 22603 2020-10-11 15:40 screenShot\cncT.pro.user.d76827c
目录 0 2020-10-18 23:36 screenShot\debug\
文件 3710092 2020-10-18 23:36 screenShot\debug\cncT.exe
文件 992131 2020-10-11 15:41 screenShot\debug\fullscreenwidget.o
文件 749117 2020-10-18 23:36 screenShot\debug\main.o
文件 5695 2020-10-11 15:41 screenShot\debug\moc_fullscreenwidget.cpp
文件 878874 2020-10-11 15:41 screenShot\debug\moc_fullscreenwidget.o
文件 14934 2020-10-11 15:41 screenShot\debug\moc_predefs.h
文件 3949 2020-10-18 23:36 screenShot\debug\moc_widget.cpp
文件 683922 2020-10-18 23:36 screenShot\debug\moc_widget.o
文件 787720 2020-10-18 23:36 screenShot\debug\widget.o
文件 16364 2020-10-11 15:30 screenShot\fullscreenwidget.cpp
文件 3813 2020-10-11 15:04 screenShot\fullscreenwidget.h
文件 168 2020-10-11 10:04 screenShot\main.cpp
文件 824 2020-10-12 02:24 screenShot\widget.h
文件 397 2020-10-11 14:37 screenShot\screenShot.pro
文件 22700 2020-10-18 23:40 screenShot\screenShot.pro.user
文件 1506 2020-10-18 23:36 screenShot\ui_widget.h
文件 2139 2020-10-16 01:47 screenShot\widget.cpp
文件 701 2020-10-18 23:36 screenShot\widget.ui
目录 0 2020-10-18 23:40 screenShot\release\
- 上一篇:qt cmd实现ping
- 下一篇:Qt 实现心电图
相关资源
- 支付宝公积金截图psd分层编辑
- 操作系统存储管理实验报告c/c++
- 基于Visual C++的屏幕录像完整源代码
- VC开发MFC局域网屏幕监控系统完美版
- C# 版VNC、远程连接
- MFC截图程序 完整版
- 获取屏幕上鼠标的位置坐标及其RGB颜
- 指令系统的自主和兼容视频截图版.
- 数据库课程设计(教室管理信息系统
- Visual C++课程设计 屏幕保护程序的开发
- C++屏幕截图源代码
- C++屏幕截图工具源代码
- MFC课程设计图书管理系统实验报告内
- VC++窗口和控件自适应屏幕尺寸改.ra
- vc++之mfc屏幕监控系统源代码
- C++ 高效 屏幕找图 函数源码
- Qt实现仿QQ截图,带绘图,撤回功能!
- C++截图程序源码
- VC++窗口和控件自适应屏幕尺寸
- C++ 如何解决屏幕和打印机分辨率不统
- 屏幕录制:CamStudio2.7开源代码
- Opencv3.4+VS2017+MFC对话框打开摄像头、截
- 截图工具及源码
- Windows屏幕截图工具C++源代码
- 高效 C++ 屏幕找图 屏幕搜索 透明找
- MFC 对对话框部分截图并保存
- 类似QQ截图的MFC截图软件C++源码
- 哈夫曼编码解码的实现及运行截图C语
- C++屏幕放大镜
- C++屏幕抓屏软件源代码
评论
共有 条评论