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);
        }
    }
相关推荐
张np3 小时前
java基础-Deque 接口
java·开发语言
柒壹漆3 小时前
用Python制作一个USB Hid设备数据收发测试工具
开发语言·git·python
LXS_3573 小时前
Day 16 C++提高之模板
开发语言·c++·笔记·学习方法
盒马盒马3 小时前
Rust:内部可变性 & 型变
开发语言·后端·rust
沐知全栈开发3 小时前
XSLT `<value-of>` 元素详解
开发语言
东哥很忙XH3 小时前
python使用PyQt5开发桌面端串口通信
开发语言·驱动开发·python·qt
手揽回忆怎么睡3 小时前
Java集成whisper.cpp
java·开发语言·whisper
wjs20243 小时前
R 基础语法
开发语言
JS_GGbond3 小时前
用美食来理解JavaScript面向对象编程
开发语言·javascript·美食
艾上编程3 小时前
第三章——爬虫工具场景之Python爬虫实战:行业资讯爬取与存储,抢占信息先机
开发语言·爬虫·python