【PyQt6】QScreen 屏幕截屏

文章目录

  • 0 环境
  • 1 简介
  • 2 QScreen 类
    • 2.1 获取 QScreen 的对象
    • 2.2 QScreen 的常见信息
  • 3. 示例代码

0 环境

- Python 3.12.1
- PyQt6                          6.6.1  ' pip install PyQt6 'PyQt6-Qt6                      6.6.1	 默认安装PyQt6-sip                      13.6.0  默认安装

1 简介

屏幕截图的方法: 使用 【PyQt6】的 QScreen.grabWindow() 方法

def grabWindow(self, WId=0, x, y, width, height) -> QPixmap:

WId: 窗口系统标识符, 默认 0 表示 屏幕将被抓取
偏移: x, y,
大小: width, height

如果想要全屏截图, 连参数都不需要写

    screen = QApplication.primaryScreen()pixmap = screen.grabWindow()pixmap.save('123.png')  # 可以直接保存为文件, qt 会根据扩展名 保存成不同的格式

2 QScreen 类

2.1 获取 QScreen 的对象

QScreen 不能被实例化,只能从 QGuiApplication 来获取

class QGuiApplication(QtCore.QCoreApplication):
...@staticmethoddef screens() -> typing.List['QScreen']:  # 多个屏幕 ,可以用这个方法进行检索@staticmethoddef primaryScreen() -> typing.Optional['QScreen']: # 主屏幕
...

2.2 QScreen 的常见信息

def screen_info():"""打印屏幕的信息,包括名称/厂家/当前分辨率/刷新率/yiArgs:screen: QScreen 类型"""screen = QApplication.primaryScreen()print('screen.name', screen.name())print('screen.manufacturer', screen.manufacturer())print('screen.refreshRate', screen.refreshRate())print('screen.size', screen.size())print('screen.availableSize', screen.availableSize())print('screen.devicePixelRatio', screen.devicePixelRatio())

3. 示例代码

在 Qt 中 直接使用 QLabel 显示像素图比较方便
如果需要使用 opencv 和 matplotlib 来显示的话, 需要把像素图转成 ndarray 类型

from PyQt6.QtWidgets import QApplication, QLabeldef screen_info():"""打印屏幕的信息,包括名称/厂家/当前分辨率/刷新率/yiArgs:screen: QScreen 类型"""screen = QApplication.primaryScreen()print('screen.name', screen.name())print('screen.manufacturer', screen.manufacturer())print('screen.refreshRate', screen.refreshRate())print('screen.size', screen.size())print('screen.availableSize', screen.availableSize())print('screen.devicePixelRatio', screen.devicePixelRatio())def grabFullScreen():screen = QApplication.primaryScreen()pixmap = screen.grabWindow()return pixmapif __name__ == '__main__':qApp = QApplication([])screen_info()pixmap = grabFullScreen()pixmap.save('123.png')w = QLabel()w.resize(pixmap.width()//3, pixmap.height()//3)w.setScaledContents(True)w.setPixmap(pixmap)w.show()qApp.exec()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【流程图——讲解】

流程图介绍 流程图介绍 流程图介绍 流程图是一种图表,它展示了工作流程或过程中的步骤顺序,它通常由不同的符号表示,每个符号都代表一个步骤或过程中的一个元素,流程图非常有用,因为它们可以提供清晰、视觉化的过程表…

SAP PP学习笔记- 豆知识01 - 怎么查询既存品目

SAP系统当中已经有哪些品目要怎么查询呢? 1,MM60 品目一览 这里可以输入Plant,然后可以查询该工厂的所有品目。 2,SE16 > MARA MARA 品目一般Data,存放的是品目基本信息。 如果要查询该品目属于哪个Plant&#x…

英语题不会怎么搜答案?分享五个支持答案和解析的工具 #学习方法#媒体

在大学的学习过程中,我们常常会遇到一些难以解决的问题,有时候甚至会感到束手无策。然而,如今的技术发展给我们提供了新的解决方案。搜题软件作为一种强大的学习工具,正在被越来越多的大学生所接受和使用。今天,我将为…

2007-2021年上市公司内控信息披露指数/上市公司内部控制信息披露指数数据

2007-2021年上市公司内控信息披露指数/上市公司内部控制信息披露指数数据 1、时间:2007-2021年 2、范围:上市公司 3、指标:证券代码、证券简称、辖区、证监会行业、申万行业、内部环境、风险评估、控制活动、信息与沟通、内部监督、内部控…

【JavaScript】使用 XMLHttpRequest 和 Fetch API

文章目录 1. XMLHttpRequest发送GET请求发送POST请求 2. Fetch API发送GET请求发送POST请求 3. 对比与总结XMLHttpRequestFetch API 4. 总结 在前端开发中, 与服务器进行数据交互是不可避免的需求,而 JavaScript 提供了多种方式来实现 HTTP 请求。本篇博…

[Python] 文件

这篇是Python基础语法的一个结尾了,还是可莉跟着大家一起学习哦~ 可莉将这篇博客收录在:《Python》 可莉推荐的优质博主主页:Keven ’ s blog 目录 一、文件是什么 二、常用的文件操作函数 1、打开文件 2、关闭文件 3、读取文件 read( ) …

开源力量:揭示开源软件如何成为技术演进与社会发展的引擎

文章目录 导言01 开源软件如何推动技术创新1.1 开放的创新模式1.2 快速迭代和反馈循环1.3 共享知识和资源1.4 生态系统的建设和扩展1.5 开放标准和互操作性 02 开源软件的商业模式2.1 支持和服务模式2.2 基于订阅的模式2.3 专有附加组件模式2.4 开源软件作为平台模式2.5 双重许…

Leetcode With Golang 二叉树 part1

这一部分主要来梳理二叉树题目最简单最基础的部分,包括遍历,一些简单题目。 一、Leecode 144 - 二叉树的前序遍历 https://leetcode.cn/problems/binary-tree-preorder-traversal/description/ 二叉树的遍历是入门。我们需要在程序一开始就创建一个空…

LabVIEW荧光显微镜下微管运动仿真系统开发

LabVIEW荧光显微镜下微管运动仿真系统开发 在生物医学研究中,对微管运动的观察和分析至关重要。介绍了一个基于LabVIEW的仿真系统,模拟荧光显微镜下微管的运动过程。该系统提供了一个高效、可靠的工具,用于研究微管与运动蛋白(如…

【教学类-19-07】20240214《ABAB式-规律黏贴18格-手工纸15*15CM-一页一种图案,A空,竖向、有边框》(中班)

背景需求 利用15*15CM手工纸制作AB色块手环(手工纸自带色彩) 素材准备 代码展示 作者:阿夏 时间:2024年2月14日 名称:正方形数字卡片AB图案 _ 华光彩云_CNKI A的位置有图案 A空18格 AB向 一页一种图案,…

OAuth 2.0 协议介绍【实现 GitHub 第三方登录】

OAuth(是 Open Authorization 开放授权的缩写),在全世界得到广泛应用,目前的版本是2.0版。 本文会对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 OAuth 2.0 是一个开放标准&#…

vmware workstation群晖虚拟机vmdk文件导出

为了防止群晖虚拟机中整个挂掉,里面的文件导不出来,尝试直接从vmdk中获取内容。 1、想采用diskgenius去读取文件,发现volume1是空的。只能读取群晖的系统文件。 2、选择另一个linux系统的虚拟机,选择对应的vmdk 3、如果有文件管理…

【JAVA-Day81】 线程休眠: Java 中暂停线程执行的方法 ⏸️

线程休眠: Java 中暂停线程执行的方法 ⏸️💤 线程休眠: Java 中暂停线程执行的方法 ⏸️💤摘要 📝引言 🚀正文 📚一、什么是线程休眠 ⏸️二、线程什么情况下会休眠 ❓三、模拟线程休眠 &#…

236. 二叉树的最近公共祖先 - 力扣(LeetCode)

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以…

2024 前端面试题 附录1

这里记录的是今天看到的其他的知识点 原篇地址:2024 前端面试题(GPT回答 示例代码 解释)No.1 - No.20 目录 这里记录的是今天看到的其他的知识点原篇地址:[2024 前端面试题(GPT回答 示例代码 解释)No.…

基于Echarts的可视化项目

整体的效果 概览区域 <!-- 概览区域模块制作 --><div class"panel overview"><div class"inner"><ul><li><h4>2190</h4><span><i class"icon-dot"></i>设备总数</span></…

SpringCloud-搭建Nacos配置中心

一、Nacos 功能介绍 Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;是阿里巴巴开源的一个分布式服务注册、配置管理&#xff0c;以及服务健康管理平台。在微服务架构中&#xff0c;配置管理是至关重要的一环&#xff0c;Nacos 提供了可靠、动态的配置…

问题:如果要编辑建好的建筑和空间,需要在分级按钮( )和细分操作按钮楼层下,才能选中建筑物和空间; #微信#媒体#其他

问题&#xff1a;如果要编辑建好的建筑和空间&#xff0c;需要在分级按钮&#xff08; &#xff09;和细分操作按钮楼层下&#xff0c;才能选中建筑物和空间&#xff1b; A、楼层 B、规划图 C、全景 D、建筑物 参考答案如图所示

<网络安全>《33 网络信息安全基础(4)网络安全工程师进阶体系(一)》

1 图谱 1 基础入门 1.1 网络安全导论 网络安全行业简介&#xff1a; 行业前景 历史 重要事件 网络安全意识与法律法规 安全意识 法律法规 案例 网络安全管理概述 安全运营、运维、模型 等保测评 等保简介、等保规定、流程和规范 1.2 渗透测试基础 渗透测试概述 - 流程、分…

CGAL 提取网格指定面片

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里我们将通过指定面片的索引来提取某个网格的子网格对象。 二、实现代码 #include <iostream> #include <vector>#include <CGAL/Exact_predicates_inexact_c