QT软件开发: 截取全屏指定位置当前窗口保存图片

Posted DS小龙哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT软件开发: 截取全屏指定位置当前窗口保存图片相关的知识,希望对你有一定的参考价值。

一、环境介绍

QT : 5.12.6

操作系统: win10 x64

编译器: MinGW32

二、示例代码

头文件

#include <QScreen>
#include <QTimer>
connect(&timer, SIGNAL(timeout()), this, SLOT(update()));
timer.start(50);

2.1 截取全屏保存为图片

void Form::update()
{
    static int cnt=0;
    QScreen *screen = QGuiApplication::primaryScreen();

    //截取当前桌面全屏画面
    screen->grabWindow(0).save(QString("%1.jpg").arg(cnt++));
}

2.2 截取窗口指定位置保存图片

void Form::update()
{
    static int cnt=0;
    QScreen *screen = QGuiApplication::primaryScreen();

    QRect rect;
    rect.setX(this->mapToGlobal(this->pos()).x());
    rect.setY(this->mapToGlobal(this->pos()).y());
    rect.setWidth(this->width());
    rect.setHeight(this->height());

    screen->grabWindow(0,rect.x(),rect.y(),rect.width(),rect.height()).save(QString("%1.jpg").arg(cnt++));//截取当前桌面

}

2.3 截取当前窗口保存为图片

void Form::update()
{
    //截取当前窗口画面.---不能透过窗口截后面
    this->grab().save(QString("%1.jpg").arg(cnt++));
}

以上是关于QT软件开发: 截取全屏指定位置当前窗口保存图片的主要内容,如果未能解决你的问题,请参考以下文章

7 窗口截图验证码处理

Qt如何全屏显示图片

Mac下截图快捷键

Qt中子窗口全屏显示与退出全屏

安卓开发截取当前屏幕图片及截取整个ListView图片并保存到本地

基于Qt5的视频监控系统怎么做?能截取视频,保存为单张图片, 也可以在windows平台和linux两个平台下运行