QT截屏,截取控件为图片,指定范围截屏三种截屏方式

news/2024/7/8 5:03:18 标签: qt, 开发语言, 截屏

项目中我们常用到截取屏幕,Qt给我的们多种方式:

主要有以下三种:

截取全屏;截取控件为图片;指定位置截屏三种截屏方式;

1.截取全屏

常用:

实现:

    QScreen *screen = QGuiApplication::primaryScreen();

   screen->grabWindow(0).save("./picture.png", "png");

2.截取控件为图片

 

 实现:

    QScreen *screen = QGuiApplication::primaryScreen();
    auto rect =  ui->calendarWidget->rect();
 
    auto widgetScreenPic = screen->grabWindow(ui->calendarWidget->winId(), rect.x(), rect.y(), rect.width(), rect.height());
    widgetScreenPic = widgetScreenPic.scaled(QSize(rect.width(), rect.height()), Qt::KeepAspectRatio);

    widgetScreenPic.save("./widgetpicture.png");

 上面这种方式对造成我的布局显示有问题,改为在全屏上截取控件的范围

    QScreen *screen = QGuiApplication::primaryScreen();
    auto rect =  ui->calendarWidget->rect();
    QPoint globalPos = ui->calendarWidget->mapToGlobal(QPoint(0, 0));
    //auto widgetScreenPic = screen->grabWindow(ui->calendarWidget->winId(), rect.x(), rect.y(), rect.width(), rect.height());

    auto widgetScreenPic = screen->grabWindow(0, globalPos.x(), globalPos.y(), rect.width(), rect.height());
    widgetScreenPic = widgetScreenPic.scaled(QSize(rect.width(), rect.height()), Qt::KeepAspectRatio);

    widgetScreenPic.save("./widgetpicture.png");

3.指定范围截屏

实现:

       QPixmap p = this->grab(QRect(-20, -20, 200, 500));

       p.save("./Rectpicture.png","png");


http://www.niftyadmin.cn/n/5536462.html

相关文章

【Godot4.2】用PlantUML和语雀画UML类图

概述 UML:统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。PlantUML:是一个开源工具,它允许我们用文本形式来描绘和创建UML图。在VSCode中可以安装扩展来绘制,而在语雀的MarkDown编辑器中&#xff…

防爆智能手机如何解决危险环境下通信难题?

在化工厂、石油行业、矿山等危险环境中,通信安全一直是难题。传统手机因不具备防爆功能,可能引发火花、爆炸等安全风险,让工作人员在关键时刻难以及时沟通。但如今,防爆智能手机的出现彻底改变了这一现状! 安全通信&am…

使用virt-manage图形添加新磁盘(注:支持热插拔)

1、使用命令打虚拟机管理界面 [rootkvm ~]# virt-manager 2、点Add Hardware进入硬件管理界面 3、设置磁盘相关的参加点finish,在KVM配置界面可看添加的磁盘 注:如添加磁盘不附合要求,可直接点remove进行删除,如果已经被添加到虚…

Qt入门小项目 | WPS tab页面(无边框窗口综合应用)

文章目录 一、手写代码实现WPS tab页面 一、手写代码实现WPS tab页面 实现类似WPS tab效果,具体包含: 自定义标题栏:最大、最小、关闭在QTabWidget的tab上增加控件在QTabWidget的tab上右键菜单可拖拽移动可拉伸窗口双击标题栏在最大与正常间…

PPT中的文字跟随Excel动态变化,且保留文字格式

今天协助客户解决了一个有趣的问题,这里记录一下,以此共勉。 目录 1. 提出问题2. 此功能的应用场景3. 开始制作4. 注意事项5. 若遇到任何问题 1. 提出问题 PPT的图表是可以引用Excel的,那PPT的文本是否可以引用Excel实现动态更新呢&#xff…

使用香橙派AIpro做目标检测

使用香橙派AIpro做目标检测 文章目录 使用香橙派AIpro做目标检测香橙派AIpro开发板介绍香橙派AIpro应用体验识别图像识别视频摄像头 香橙派AIpro AI应用场景总结 香橙派AIpro开发板介绍 ​ OrangePi AIpro(8-12T)是一款集成昇腾AI技术的开发板,搭载4核64位CPU和AI处…

半导体制造企业 文件共享存储应用

用户背景:半导体设备(上海)股份有限公司是一家以中国为基地、面向全球的微观加工高端设备公司,为集成电路和泛半导体行业提供具竞争力的高端设备和高质量的服务。 挑战:芯片的行业在国内迅猛发展,用户在上海…

因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议,而此协议是不安全的 解决方法

目录 1. 问题所示2. 解决方法3. 解决方法1. 问题所示 输入共享文件地址的时候,出现如下信息: 因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议,而此协议是不安全的,可能会是你的系统遭受攻击。你的系统需要SMB2或更高版本截图如下所示: 2. 解决…