pyqt5初学入门--1.实现屏幕上自由截图功能

PYQT5学习笔记
环境配置

PyCharm+Anaconda(安装过程略)
新导入工程先在Setting里配置环境,可以用Anaconda安装所需的库。过程如下
activate 环境
pip install 库

一。屏幕截图功能
实现思路

重写鼠标动作mousePressEvent、mouseMoveEvent、mouseReleaseEvent,记录鼠标位置,画出QRect。pos()是窗口位置,globalPos()是屏幕位置。

QRect(QPoint(self.old.x, self.old.y), QPoint(self.new.x, self.new.y))可以允许从任意角拖动截屏。

self.screen = QApplication.primaryScreen()
self.screenshot = self.screen.grabWindow(QApplication.desktop().winId(), self.rect.x(), self.rect.y(), self.rect.width(), self.rect.height())
用于截取图片,save()可以保存图片

self.rubberBand = QRubberBand(QRubberBand.Rectangle, self)
QRubberBand是橡皮筋类,用于显示截取框

为了避免和其他窗口的鼠标动作冲突,先生成一个全屏无标题的窗口,覆盖在屏幕上,设置透明度setWindowOpacity(0.3),在新窗口上截屏,grabWindow()取图片之前先将透明度设为0.01,保证图片清晰度。

主要代码

代码
	    #鼠标左键开始截图
	    def mousePressEvent(self, event):
        if self.c

你可能感兴趣的:(技术积累,python,QT/PYQT,截图)