Qt实现窗口截图功能

 更新时间:2024年11月19日 10:39:59   作者:小gpt&  
这篇文章主要为大家详细介绍了如何使用Qt实现简单的窗口截图功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

截取窗口:适用做视频通话截图

QScreen *screen=QGuiApplication::primaryScreen();
QPixmap pixmap=screen->grabWindow(ui->widget->winId());//ui->widget->winId()你需要截图的窗口id
pixmap.save("./1.jpg","jpg");

全屏截图

  QScreen *screen = QGuiApplication::primaryScreen();
    if (screen) {
        // 截取整个屏幕
        QPixmap screenshot = screen->grabWindow(0);


        // 可选择保存路径和文件名
        QString fileName = QFileDialog::getSaveFileName(nullptr, "保存截图",
                                                        QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".png",
                                                        "Images (*.png *.xpm *.jpg)");


        if (!fileName.isEmpty()) {
            // 保存截图
            screenshot.save(fileName);
        }
    }

全屏截图加水印

 QScreen *screen = QGuiApplication::primaryScreen();
    if (screen) {
        // 截取整个屏幕
        QPixmap screenshot = screen->grabWindow(0);


        // 创建 QPainter 对象在截图上绘制
        QPainter painter(&screenshot);


        // 设置水印样式
        painter.setPen(QColor(255, 0, 0, 128)); // 红色,透明度为128
        painter.setFont(QFont("Arial", 30, QFont::Bold));


        // 添加水印文本
        QString watermarkText = "小gpt";
        painter.drawText(screenshot.rect(), Qt::AlignVCenter | Qt::AlignHCenter, watermarkText);


        // 结束绘制
        painter.end();


        // 可选择保存路径和文件名
        QString fileName = QFileDialog::getSaveFileName(nullptr, "保存截图",
                                                        QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".png",
                                                        "Images (*.png *.xpm *.jpg)");


        if (!fileName.isEmpty()) {
            // 保存带水印的截图
            screenshot.save(fileName);
        }
    }

到此这篇关于Qt实现窗口截图功能的文章就介绍到这了,更多相关Qt窗口截图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言实现逆序输出详细

    C语言实现逆序输出详细

    这篇文章主要介绍了C语言实现逆序输出。主要实现C语言实现对数组元素依次赋值然后按照逆序输出,下面文章小编将详细解说,需要的朋友可以参考一下
    2021-10-10
  • C++超详细实现堆和堆排序过像

    C++超详细实现堆和堆排序过像

    堆是计算机科学中一类特殊的数据结构的统称,通常是一个可以被看做一棵完全二叉树的数组对象。而堆排序是利用堆这种数据结构所设计的一种排序算法。本文将通过图片详细介绍堆排序,需要的可以参考一下
    2022-06-06
  • c++ Qt信号槽原理

    c++ Qt信号槽原理

    这篇文章主要介绍了c++ Qt信号槽原理的相关资料,帮助大家更好的理解和使用c++,感兴趣的朋友可以了解下
    2021-02-02
  • QT实现自定义Http客户端的示例代码

    QT实现自定义Http客户端的示例代码

    这篇文章主要为大家详细介绍了QT如何实现自定义Http客户端的,可以实现支持get,post请求方式;支持连接超时处理;支持网络错误,尝试重连等功能,感兴趣的小伙伴可以学习一下
    2022-11-11
  • OpenGL扫描线填充算法详解

    OpenGL扫描线填充算法详解

    这篇文章主要为大家详细介绍了OpenGL实现扫描线填充算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C语言用递归函数对素数进行判断流程

    C语言用递归函数对素数进行判断流程

    素数判断是编程语言学习过程中一个老生常谈的话题,而它的实现也有多种算法,包括经典的试除法(以及试除法的几种优化),进阶的素数表筛选法,埃拉托斯特尼筛法和欧拉筛法(以及它们的优化)等。对以上算法感兴趣的朋友们,不妨搜索“素数判断的N种境界”来学习了解
    2022-09-09
  • Visual Studio 2019创建C++ Hello World项目的方法

    Visual Studio 2019创建C++ Hello World项目的方法

    这篇文章主要介绍了Visual Studio 2019创建C++ Hello World项目的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • C语言模拟实现学生学籍管理系统

    C语言模拟实现学生学籍管理系统

    这篇文章主要为大家详细介绍了C语言模拟实现学生学籍管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • C++如何获取本机的IP地址

    C++如何获取本机的IP地址

    这篇文章主要为大家详细介绍了C++如何获取本机IP地址小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C语言左旋转字符串与翻转字符串中单词顺序的方法

    C语言左旋转字符串与翻转字符串中单词顺序的方法

    这篇文章主要介绍了C语言左旋转字符串与翻转字符串中单词顺序的方法,给出了相关的两道算法题目作为例子,需要的朋友可以参考下
    2016-02-02

最新评论