qt窗口截图

  • 截取窗口:适用做视频通话截图
cpp 复制代码
QScreen *screen=QGuiApplication::primaryScreen();
QPixmap pixmap=screen->grabWindow(ui->widget->winId());//ui->widget->winId()你需要截图的窗口id
pixmap.save("./1.jpg","jpg");
  • 全屏截图
cpp 复制代码
  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);
        }
    }
  • 全屏截图加水印
cpp 复制代码
 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);
        }
    }
相关推荐
wuqingshun3141591 小时前
重写equals而不重写hashCode,会出什么问题?
java·开发语言
飞猪~1 小时前
LangChain python 版本 第一集
开发语言·python·langchain
李燚3 小时前
Go 项目怎么组织:DDD 4 层 vs MVC vs 脚本式
开发语言·golang·mvc·ddd·agent框架·eino
2zcode3 小时前
免费开源项目文档:基于MATLAB图像处理的啤酒瓶口缺陷检测系统设计与实现
开发语言·图像处理·matlab
人工智能时代 准备好了吗4 小时前
AI回答内容进入率监测:引用识别、文本匹配与语义判断
开发语言·人工智能·python
LONGZETECH4 小时前
新能源汽车动力电池检测仿真教学系统:C/S 分层架构与数字化实训落地全解析
大数据·c语言·开发语言·人工智能·架构·系统架构·汽车
郝学胜-神的一滴4 小时前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
Metaphor6924 小时前
使用 Python 冻结 Excel 文件中的行、列和单元格
开发语言·python·excel
言乐65 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
KobeSacre5 小时前
Semaphore 源码
java·开发语言