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

2022-01-12 10:35:14 浏览数 (1)

一、环境介绍

QT : 5.12.6

操作系统: win10 x64

编译器: MinGW32

二、示例代码

头文件

代码语言:javascript复制
#include <QScreen>
#include <QTimer>
connect(&timer, SIGNAL(timeout()), this, SLOT(update()));
timer.start(50);

2.1 截取全屏保存为图片

代码语言:javascript复制
void Form::update()
{
    static int cnt=0;
    QScreen *screen = QGuiApplication::primaryScreen();

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

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

代码语言:javascript复制
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 截取当前窗口保存为图片

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

0 人点赞