前言
研发过程中需要实现类似QQ截图的放大镜功能,相信很多人都知道这种效果![qq截图](https://img-blog.csdnimg.cn/65df910cf45e4dea945cd280048d2f7b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAa29uZ2Zzc3p6,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)这种功能应该如何实现,我在https://github.com/fandesfyf/Jamscreenshot的截图工具箱中找到了方法
示例
具体操作就是在窗口中显示图像,之后根据鼠标所在的位置,将图像的对应位置放大,并使用画笔显示在鼠标附近。简单示例如下:import sys
import traceback
from PyQt5.QtCore import QRect, Qt
from PyQt5.QtGui import QPainter, QPen, QPixmap, QColor, QFont, QBrush
from PyQt5.QtWidgets import QLabel, QApplication
class Drawing(QLabel):
def __init__(self):
super().__init__()
self.initUI()
self.pos_x = 0
self.pos_y = 0
self.enter = False
self.setMouseTracking(True)
def mouseMoveEvent(self, e): #获取鼠标位置
try:
s = e.localPos()
self.pos_x = s.x()
self.pos_y = s.y()
self.update()
except Exception as e: