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");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/770972.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SSM少儿读者交流系-计算机毕业设计源码20005

摘要 随着信息技术的发展和互联网的普及,少儿读者之间的交流方式发生了革命性的变化。通过使用Java编程语言,可以实现系统的高度灵活性和可扩展性。而SSM框架的采用,可以提供良好的开发结构和代码管理,使系统更加稳定和易于维护。…

中服云数字孪生平台引领工业物联仿真新纪元!

中服云数字孪生平台3.0是基于中服云物联网平台和数据中台打造的一款实时数据2D/3D集成展示监控平台。 旨在解决工业物联网数据的直观展示、实虚互动、仿真模拟、故障诊断、告警、预警、预测、实时观测、实时监控等问题。提供了数据采集、数据底座、监控逻辑、建模工具、展示互…

爬虫笔记19——代理IP的使用

访问网站时IP被阻止 有些网站会设置特定规则来限制用户的访问,例如频率限制、单一账户多次登录等。 网站为了保护自身安全和用户体验,会设置防御机制,将涉嫌恶意行为的IP地址加入黑名单并屏蔽访问。如果用户在使用网站时违反了这些规则&…

改变conda创建虚拟环境时的默认路径(C盘)

①C:\Users\Lenovo 找到C盘中用户目录下的.condarc文件 ②打开.condarc文件后,添加并修改.condarc 中的 env_dirs 环境路径,按顺序第⼀个路径作为默认存储路径,也就是我的E盘(需要你先在E盘中新建文件夹envsE)。修改完…

【C++知识点总结全系列 (03)】:函数(函数参数传递、可变参数、函数返回值等详细介绍)

函数 1、函数基本概述(1)What(什么是函数)(2)Why(函数的作用)(3)How(如何声明和定义函数)A.声明函数B.定义函数(实现) 2、函数参数(1)传递方式A.值传递B.指针传递C.引用传递 (2)cons…

PHP房产小程序微信小程序系统源码

🏠—— 购房租房,一“指”搞定🏡 🔍【开篇:房产新视界,尽在掌握】 在这个信息爆炸的时代,找房子不再是一场漫长的奔波。有了“房产微信小程序”,无论是购房还是租房,都…

飞时达软件,揭开土方工程师的生活“面纱”

作为一名从事土方施工项目5年的工程师小刘,工作中遇到的最头疼的问题,就是如何快速准确地计算出每个土块的土方量。从前都是手动在设计图上量取,容易出错且耗时。直到有一天,他通过同事的推荐下载了飞时达软件,从此改变了他的土方计算生活。 从乏味到休闲,计算工作多了乐趣 小…

python 打包成exe出错——No module named ‘tkinter‘

问题&#xff1a;执行 pyinstaller 打包之后 的exe 文件时&#xff0c;提示以下信息 Traceback (most recent call last):File "xxx.py", line 6, in <module> ModuleNotFoundError: No module named tkinter [18720] Failed to execute script xxx due to un…

Linux—文件内系统与日志分析

目录 一、Linux文件系统 1、inode 与 block概述 1.2、inode内容 1.3、查找inode 1.4、inode故障处理 2、硬盘分区后的结构 3、访问文件的流程 4、文件恢复 4.1、恢复ext3格式文件 4.2、恢复 xfs 格式文件 二、Linux日志文件 1、日志的功能 2、日志的默认位置 3、日…

解决pip默认安装位置在C盘方法

新版python中使用pip命令将opencv库安装到base环境中 首先我们打开命令控制窗口&#xff0c;激活base环境&#xff0c;输入conda activate base 然后检查一下自己base环境中是否安装opencv库&#xff0c;输入conda list 往下找&#xff0c;找到o开头的地方&#xff0c;发现是…

【HTML入门】第一课 - 网页标签框架

这一节&#xff0c;我们说一下学习前端开发的话&#xff0c;最入门的也是非常重要的一门可成&#xff0c;也就是HTML。HTML标签&#xff0c;是网页的重要组成部分&#xff0c;可以说&#xff0c;你看到网页上的内容&#xff0c;都是基于HTML标签呈现出来的。 这一小节呢&#…

怎么录制电脑内部声音?好用的录音软件分享,看这篇就够了!

如何录制电脑内部声音&#xff1f;平时使用电脑工作&#xff0c;难免会遇到需要录音的情况。好用的录音软件有很多&#xff0c;也有部分录屏工具也支持录音功能。 那么如何录制电脑内部声音呢&#xff1f;本文整理了几个录制电脑内部声音的方法&#xff0c;如果你需要在电脑上录…

nacos开启鉴权后,springboot注册失败

1.确认Nacos版本 我的Nacos版本是1.4.2 2.确认Nacos相关依赖的版本之间兼容&#xff0c;一下是我的一些pom.xml依赖 <!--父级项目的--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifa…

推荐一个私有化部署的物联网平台

引言 随着物联网技术的飞速发展&#xff0c;越来越多的企业开始寻求能够提供稳定、安全、可定制的物联网解决方案。私有化部署的物联网平台因其能够满足企业对数据安全和个性化需求的优势&#xff0c;逐渐成为市场的新宠。本文将详细介绍ThingsKit物联网平台&#xff0c;一个专…

微软发布了Win11 24H2版本的首个设置动态更新和恢复!

系统之家于7月3日发出最新报道&#xff0c;微软针对Win11 24H2版本发布了首个设置动态更新(Setup Dynamic Update)KB5039448。此次更新主要改进了Win11 24H2的安装文件以及用户在升级、安装到24H2版本过程中可能会使用到的所有文件。 系统之家附上 Windows 11 24H2 的完整发布时…

刷代码随想录有感(125):动态规划——最长公共子序列

题干&#xff1a; 代码&#xff1a; class Solution { public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>>dp(text1.size() 1, vector<int>(text2.size() 1, 0));for(int i 1; i < text1.size(); i){for(int j …

AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理

AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理 目录 AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理 一、简单介绍 二、Transformer 三、Transformer架构 四、编码器 1、自注意…

PyCharm社区版Cython支持

自己在文件类型中加一个&#xff0c;名称叫【pythonC】 &#xff0c;文件名模式这一栏要加*.pyx的后缀&#xff0c;之后双击【pythonC】编辑这个文件类型 这里1、2、3、4配置如下 # 1 " # &*, - / : ; <>[ ] { }# 2 False None True and as assert break cdef …

Python代码设置Excel工作表背景色或背景图

Excel是工作中数据处理和分析数据的重要工具。面对海量的数据和复杂的表格&#xff0c;如何提高工作效率、减少视觉疲劳并提升数据的可读性是不容忽视的问题。而给工作表设置合适的背景是表格优化的一个有效方式。为Excel工作表设置背景色或背景图不仅能够美化工作表&#xff0…

FreeRTOS学习 -- 软件定时器

一、软件定时器简介 1、软件定时器概述 软件定时器允许设置一段时间&#xff0c;当设置的时间到达之后就执行指定的功能函数&#xff0c;被定时器调用的这个功能函数叫做定时器的回调函数。回调函数的两次执行间隔叫做定时器的定时周期。 简而言之&#xff0c;当定时器的定时…