【PyQt6】QScreen 屏幕截屏

2024-02-16 08:04
文章标签 屏幕 截屏 pyqt6 qscreen

本文主要是介绍【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()

在这里插入图片描述

这篇关于【PyQt6】QScreen 屏幕截屏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/713966

相关文章

Linux下屏幕亮度的调节方式

《Linux下屏幕亮度的调节方式》文章介绍了Linux下屏幕亮度调节的几种方法,包括图形界面、手动调节(使用ACPI内核模块)和外接显示屏调节,以及自动调节软件(CaliseRedshift和Reds... 目录1 概述2 手动调节http://www.chinasem.cn2.1 手动屏幕调节2.2 外接显

Python屏幕抓取和录制的详细代码示例

《Python屏幕抓取和录制的详细代码示例》随着现代计算机性能的提高和网络速度的加快,越来越多的用户需要对他们的屏幕进行录制,:本文主要介绍Python屏幕抓取和录制的相关资料,需要的朋友可以参考... 目录一、常用 python 屏幕抓取库二、pyautogui 截屏示例三、mss 高性能截图四、Pill

PyQt6 键盘事件处理的实现及实例代码

《PyQt6键盘事件处理的实现及实例代码》本文主要介绍了PyQt6键盘事件处理的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录一、键盘事件处理详解1、核心事件处理器2、事件对象 QKeyEvent3、修饰键处理(1)、修饰键类

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau

PyQt6中QMainWindow组件的使用详解

《PyQt6中QMainWindow组件的使用详解》QMainWindow是PyQt6中用于构建桌面应用程序的基础组件,本文主要介绍了PyQt6中QMainWindow组件的使用,具有一定的参考价值,... 目录1. QMainWindow 组php件概述2. 使用 QMainWindow3. QMainW

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

PyQt6/PySide6中QTableView类的实现

《PyQt6/PySide6中QTableView类的实现》本文主要介绍了PyQt6/PySide6中QTableView类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录1. 基本概念2. 创建 QTableView 实例3. QTableView 的常用属性和方法

PyQt6/PySide6中QTreeView类的实现

《PyQt6/PySide6中QTreeView类的实现》QTreeView是PyQt6或PySide6库中用于显示分层数据的控件,本文主要介绍了PyQt6/PySide6中QTreeView类的实现... 目录1. 基本概念2. 创建 QTreeView 实例3. QTreeView 的常用属性和方法属性