截取窗口:适用做视频通话截图
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窗口截图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源链接:https://www.jb51.net/program/330966qmw.htm
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容